~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pci/ralink,rt3883-pci.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 * Mediatek/Ralink RT3883 PCI controller
  2 
  3 1) Main node
  4 
  5    Required properties:
  6 
  7    - compatible: must be "ralink,rt3883-pci"
  8 
  9    - reg: specifies the physical base address of the controller and
 10      the length of the memory mapped region.
 11 
 12    - #address-cells: specifies the number of cells needed to encode an
 13      address. The value must be 1.
 14 
 15    - #size-cells: specifies the number of cells used to represent the size
 16      of an address. The value must be 1.
 17 
 18    - ranges: specifies the translation between child address space and parent
 19      address space
 20 
 21   Optional properties:
 22 
 23    - status: indicates the operational status of the device.
 24      Value must be either "disabled" or "okay".
 25 
 26 2) Child nodes
 27 
 28    The main node must have two child nodes which describes the built-in
 29    interrupt controller and the PCI host bridge.
 30 
 31    a) Interrupt controller:
 32 
 33    Required properties:
 34 
 35    - interrupt-controller: identifies the node as an interrupt controller
 36 
 37    - #address-cells: specifies the number of cells needed to encode an
 38      address. The value must be 0. As such, 'interrupt-map' nodes do not
 39      have to specify a parent unit address.
 40 
 41    - #interrupt-cells: specifies the number of cells needed to encode an
 42      interrupt source. The value must be 1.
 43 
 44    - interrupts: specifies the interrupt source of the parent interrupt
 45      controller. The format of the interrupt specifier depends on the
 46      parent interrupt controller.
 47 
 48    b) PCI host bridge:
 49 
 50    Required properties:
 51 
 52    - #address-cells: specifies the number of cells needed to encode an
 53      address. The value must be 0.
 54 
 55    - #size-cells: specifies the number of cells used to represent the size
 56      of an address. The value must be 2.
 57 
 58    - #interrupt-cells: specifies the number of cells needed to encode an
 59      interrupt source. The value must be 1.
 60 
 61    - device_type: must be "pci"
 62 
 63    - bus-range: PCI bus numbers covered
 64 
 65    - ranges: specifies the ranges for the PCI memory and I/O regions
 66 
 67    - interrupt-map-mask,
 68    - interrupt-map: standard PCI properties to define the mapping of the
 69      PCI interface to interrupt numbers.
 70 
 71    The PCI host bridge node might have additional sub-nodes representing
 72    the onboard PCI devices/PCI slots. Each such sub-node must have the
 73    following mandatory properties:
 74 
 75      - reg: used only for interrupt mapping, so only the first four bytes
 76        are used to refer to the correct bus number and device number.
 77 
 78      - device_type: must be "pci"
 79 
 80    If a given sub-node represents a PCI bridge it must have following
 81    mandatory properties as well:
 82 
 83      - #address-cells: must be set to <3>
 84 
 85      - #size-cells: must set to <2>
 86 
 87      - #interrupt-cells: must be set to <1>
 88 
 89      - interrupt-map-mask,
 90      - interrupt-map: standard PCI properties to define the mapping of the
 91        PCI interface to interrupt numbers.
 92 
 93    Besides the required properties the sub-nodes may have these optional
 94    properties:
 95 
 96      - status: indicates the operational status of the sub-node.
 97        Value must be either "disabled" or "okay".
 98 
 99 3) Example:
100 
101    a) SoC specific dtsi file:
102 
103         pci@10140000 {
104                 compatible = "ralink,rt3883-pci";
105                 reg = <0x10140000 0x20000>;
106                 #address-cells = <1>;
107                 #size-cells = <1>;
108                 ranges; /* direct mapping */
109 
110                 status = "disabled";
111 
112                 pciintc: interrupt-controller {
113                         interrupt-controller;
114                         #address-cells = <0>;
115                         #interrupt-cells = <1>;
116 
117                         interrupt-parent = <&cpuintc>;
118                         interrupts = <4>;
119                 };
120 
121                 host-bridge {
122                         #address-cells = <3>;
123                         #size-cells = <2>;
124                         #interrupt-cells = <1>;
125 
126                         device_type = "pci";
127 
128                         bus-range = <0 255>;
129                         ranges = <
130                                 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
131                                 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
132                         >;
133 
134                         interrupt-map-mask = <0xf800 0 0 7>;
135                         interrupt-map = <
136                                 /* IDSEL 17 */
137                                 0x8800 0 0 1 &pciintc 18
138                                 0x8800 0 0 2 &pciintc 18
139                                 0x8800 0 0 3 &pciintc 18
140                                 0x8800 0 0 4 &pciintc 18
141                                 /* IDSEL 18 */
142                                 0x9000 0 0 1 &pciintc 19
143                                 0x9000 0 0 2 &pciintc 19
144                                 0x9000 0 0 3 &pciintc 19
145                                 0x9000 0 0 4 &pciintc 19
146                         >;
147 
148                         pci-bridge@1 {
149                                 reg = <0x0800 0 0 0 0>;
150                                 device_type = "pci";
151                                 #interrupt-cells = <1>;
152                                 #address-cells = <3>;
153                                 #size-cells = <2>;
154 
155                                 interrupt-map-mask = <0x0 0 0 0>;
156                                 interrupt-map = <0x0 0 0 0 &pciintc 20>;
157 
158                                 status = "disabled";
159                         };
160 
161                         pci-slot@17 {
162                                 reg = <0x8800 0 0 0 0>;
163                                 device_type = "pci";
164 
165                                 status = "disabled";
166                         };
167 
168                         pci-slot@18 {
169                                 reg = <0x9000 0 0 0 0>;
170                                 device_type = "pci";
171 
172                                 status = "disabled";
173                         };
174                 };
175         };
176 
177    b) Board specific dts file:
178 
179         pci@10140000 {
180                 status = "okay";
181 
182                 host-bridge {
183                         pci-bridge@1 {
184                                 status = "okay";
185                         };
186                 };
187         };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php