1 * Mediatek/Ralink RT3883 PCI controller
7 - compatible: must be "ralink,rt3883-pci"
9 - reg: specifies the physical base address of the controller and
10 the length of the memory mapped region.
12 - #address-cells: specifies the number of cells needed to encode an
13 address. The value must be 1.
15 - #size-cells: specifies the number of cells used to represent the size
16 of an address. The value must be 1.
18 - ranges: specifies the translation between child address space and parent
23 - status: indicates the operational status of the device.
24 Value must be either "disabled" or "okay".
28 The main node must have two child nodes which describes the built-in
29 interrupt controller and the PCI host bridge.
31 a) Interrupt controller:
35 - interrupt-controller: identifies the node as an interrupt controller
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.
41 - #interrupt-cells: specifies the number of cells needed to encode an
42 interrupt source. The value must be 1.
44 - interrupt-parent: the phandle for the interrupt controller that
45 services interrupts for this device.
47 - interrupts: specifies the interrupt source of the parent interrupt
48 controller. The format of the interrupt specifier depends on the
49 parent interrupt controller.
55 - #address-cells: specifies the number of cells needed to encode an
56 address. The value must be 0.
58 - #size-cells: specifies the number of cells used to represent the size
59 of an address. The value must be 2.
61 - #interrupt-cells: specifies the number of cells needed to encode an
62 interrupt source. The value must be 1.
64 - device_type: must be "pci"
66 - bus-range: PCI bus numbers covered
68 - ranges: specifies the ranges for the PCI memory and I/O regions
71 - interrupt-map: standard PCI properties to define the mapping of the
72 PCI interface to interrupt numbers.
74 The PCI host bridge node might have additional sub-nodes representing
75 the onboard PCI devices/PCI slots. Each such sub-node must have the
76 following mandatory properties:
78 - reg: used only for interrupt mapping, so only the first four bytes
79 are used to refer to the correct bus number and device number.
81 - device_type: must be "pci"
83 If a given sub-node represents a PCI bridge it must have following
84 mandatory properties as well:
86 - #address-cells: must be set to <3>
88 - #size-cells: must set to <2>
90 - #interrupt-cells: must be set to <1>
93 - interrupt-map: standard PCI properties to define the mapping of the
94 PCI interface to interrupt numbers.
96 Besides the required properties the sub-nodes may have these optional
99 - status: indicates the operational status of the sub-node.
100 Value must be either "disabled" or "okay".
104 a) SoC specific dtsi file:
107 compatible = "ralink,rt3883-pci";
108 reg = <0x10140000 0x20000>;
109 #address-cells = <1>;
111 ranges; /* direct mapping */
115 pciintc: interrupt-controller {
116 interrupt-controller;
117 #address-cells = <0>;
118 #interrupt-cells = <1>;
120 interrupt-parent = <&cpuintc>;
125 #address-cells = <3>;
127 #interrupt-cells = <1>;
133 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
134 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
137 interrupt-map-mask = <0xf800 0 0 7>;
140 0x8800 0 0 1 &pciintc 18
141 0x8800 0 0 2 &pciintc 18
142 0x8800 0 0 3 &pciintc 18
143 0x8800 0 0 4 &pciintc 18
145 0x9000 0 0 1 &pciintc 19
146 0x9000 0 0 2 &pciintc 19
147 0x9000 0 0 3 &pciintc 19
148 0x9000 0 0 4 &pciintc 19
152 reg = <0x0800 0 0 0 0>;
154 #interrupt-cells = <1>;
155 #address-cells = <3>;
158 interrupt-map-mask = <0x0 0 0 0>;
159 interrupt-map = <0x0 0 0 0 &pciintc 20>;
165 reg = <0x8800 0 0 0 0>;
172 reg = <0x9000 0 0 0 0>;
180 b) Board specific dts file: