Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / soc / fsl / cpm_qe / qe.txt
1 * Freescale QUICC Engine module (QE)
2 This represents qe module that is installed on PowerQUICC II Pro.
3
4 NOTE:  This is an interim binding; it should be updated to fit
5 in with the CPM binding later in this document.
6
7 Basically, it is a bus of devices, that could act more or less
8 as a complete entity (UCC, USB etc ). All of them should be siblings on
9 the "root" qe node, using the common properties from there.
10 The description below applies to the qe of MPC8360 and
11 more nodes and properties would be extended in the future.
12
13 i) Root QE device
14
15 Required properties:
16 - compatible : should be "fsl,qe";
17 - model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
18 - reg : offset and length of the device registers.
19 - bus-frequency : the clock frequency for QUICC Engine.
20 - fsl,qe-num-riscs: define how many RISC engines the QE has.
21 - fsl,qe-num-snums: define how many serial number(SNUM) the QE can use for the
22   threads.
23
24 Optional properties:
25 - fsl,firmware-phandle:
26     Usage: required only if there is no fsl,qe-firmware child node
27     Value type: <phandle>
28     Definition: Points to a firmware node (see "QE Firmware Node" below)
29         that contains the firmware that should be uploaded for this QE.
30         The compatible property for the firmware node should say,
31         "fsl,qe-firmware".
32
33 Recommended properties
34 - brg-frequency : the internal clock source frequency for baud-rate
35   generators in Hz.
36
37 Example:
38      qe@e0100000 {
39         #address-cells = <1>;
40         #size-cells = <1>;
41         #interrupt-cells = <2>;
42         compatible = "fsl,qe";
43         ranges = <0 e0100000 00100000>;
44         reg = <e0100000 480>;
45         brg-frequency = <0>;
46         bus-frequency = <179A7B00>;
47      }
48
49 * Multi-User RAM (MURAM)
50
51 Required properties:
52 - compatible : should be "fsl,qe-muram", "fsl,cpm-muram".
53 - mode : the could be "host" or "slave".
54 - ranges : Should be defined as specified in 1) to describe the
55    translation of MURAM addresses.
56 - data-only : sub-node which defines the address area under MURAM
57    bus that can be allocated as data/parameter
58
59 Example:
60
61      muram@10000 {
62         compatible = "fsl,qe-muram", "fsl,cpm-muram";
63         ranges = <0 00010000 0000c000>;
64
65         data-only@0{
66                 compatible = "fsl,qe-muram-data",
67                              "fsl,cpm-muram-data";
68                 reg = <0 c000>;
69         };
70      };
71
72 * Interrupt Controller (IC)
73
74 Required properties:
75 - compatible : should be "fsl,qe-ic".
76 - reg : Address range of IC register set.
77 - interrupts : interrupts generated by the device.
78 - interrupt-controller : this device is a interrupt controller.
79
80 Example:
81
82         qeic: interrupt-controller@80 {
83                 interrupt-controller;
84                 compatible = "fsl,qe-ic";
85                 #address-cells = <0>;
86                 #interrupt-cells = <1>;
87                 reg = <0x80 0x80>;
88                 interrupts = <95 2 0 0  94 2 0 0>;
89         };
90
91 * Serial Interface Block (SI)
92
93 The SI manages the routing of eight TDM lines to the QE block serial drivers
94 , the MCC and the UCCs, for receive and transmit.
95
96 Required properties:
97 - compatible : must be "fsl,<chip>-qe-si". For t1040, must contain
98   "fsl,t1040-qe-si".
99 - reg : Address range of SI register set.
100
101 Example:
102
103         si1: si@700 {
104                 compatible = "fsl,t1040-qe-si";
105                 reg = <0x700 0x80>;
106         };
107
108 * Serial Interface Block RAM(SIRAM)
109
110 store the routing entries of SI
111
112 Required properties:
113 - compatible : should be "fsl,<chip>-qe-siram". For t1040, must contain
114   "fsl,t1040-qe-siram".
115 - reg : Address range of SI RAM.
116
117 Example:
118
119         siram1: siram@1000 {
120                 compatible = "fsl,t1040-qe-siram";
121                 reg = <0x1000 0x800>;
122         };
123
124 * QE Firmware Node
125
126 This node defines a firmware binary that is embedded in the device tree, for
127 the purpose of passing the firmware from bootloader to the kernel, or from
128 the hypervisor to the guest.
129
130 The firmware node itself contains the firmware binary contents, a compatible
131 property, and any firmware-specific properties.  The node should be placed
132 inside a QE node that needs it.  Doing so eliminates the need for a
133 fsl,firmware-phandle property.  Other QE nodes that need the same firmware
134 should define an fsl,firmware-phandle property that points to the firmware node
135 in the first QE node.
136
137 The fsl,firmware property can be specified in the DTS (possibly using incbin)
138 or can be inserted by the boot loader at boot time.
139
140 Required properties:
141   - compatible
142       Usage: required
143       Value type: <string>
144       Definition: A standard property.  Specify a string that indicates what
145           kind of firmware it is.  For QE, this should be "fsl,qe-firmware".
146
147    - fsl,firmware
148       Usage: required
149       Value type: <prop-encoded-array>, encoded as an array of bytes
150       Definition: A standard property.  This property contains the firmware
151           binary "blob".
152
153 Example:
154         qe1@e0080000 {
155                 compatible = "fsl,qe";
156                 qe_firmware:qe-firmware {
157                         compatible = "fsl,qe-firmware";
158                         fsl,firmware = [0x70 0xcd 0x00 0x00 0x01 0x46 0x45 ...];
159                 };
160                 ...
161         };
162
163         qe2@e0090000 {
164                 compatible = "fsl,qe";
165                 fsl,firmware-phandle = <&qe_firmware>;
166                 ...
167         };