ramips: add PCI node for rt3883.dtsi
[openwrt.git] / target / linux / ramips / dts / rt3883.dtsi
1 / {
2         #address-cells = <1>;
3         #size-cells = <1>;
4         compatible = "ralink,rt3883-soc";
5
6         cpus {
7                 cpu@0 {
8                         compatible = "mips,mips74Kc";
9                 };
10         };
11
12         chosen {
13                 bootargs = "console=ttyS0,57600";
14         };
15
16         aliases {
17                 spi0 = &spi0;
18         };
19
20         cpuintc: cpuintc@0 {
21                 #address-cells = <0>;
22                 #interrupt-cells = <1>;
23                 interrupt-controller;
24                 compatible = "mti,cpu-interrupt-controller";
25         };
26
27         palmbus@10000000 {
28                 compatible = "palmbus";
29                 reg = <0x10000000 0x200000>;
30                 ranges = <0x0 0x10000000 0x1FFFFF>;
31
32                 #address-cells = <1>;
33                 #size-cells = <1>;
34
35                 sysc@0 {
36                         compatible = "ralink,rt3883-sysc", "ralink,rt3050-sysc";
37                         reg = <0x0 0x100>;
38                 };
39
40                 timer@100 {
41                         compatible = "ralink,rt3883-timer", "ralink,rt2880-timer";
42                         reg = <0x100 0x20>;
43
44                         interrupt-parent = <&intc>;
45                         interrupts = <1>;
46                 };
47
48                 watchdog@120 {
49                         compatible = "ralink,rt3883-wdt", "ralink,rt2880-wdt";
50                         reg = <0x120 0x10>;
51                 };
52
53                 intc: intc@200 {
54                         compatible = "ralink,rt3883-intc", "ralink,rt2880-intc";
55                         reg = <0x200 0x100>;
56
57                         interrupt-controller;
58                         #interrupt-cells = <1>;
59
60                         interrupt-parent = <&cpuintc>;
61                         interrupts = <2>;
62                 };
63
64                 memc@300 {
65                         compatible = "ralink,rt3883-memc", "ralink,rt3050-memc";
66                         reg = <0x300 0x100>;
67                 };
68
69                 gpio0: gpio@600 {
70                         compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
71                         reg = <0x600 0x34>;
72
73                         gpio-controller;
74                         #gpio-cells = <2>;
75
76                         ralink,num-gpios = <24>;
77                         ralink,register-map = [ 00 04 08 0c
78                                                 20 24 28 2c
79                                                 30 34 ];
80
81                         status = "disabled";
82                 };
83
84                 gpio1: gpio@638 {
85                         compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
86                         reg = <0x638 0x24>;
87
88                         gpio-controller;
89                         #gpio-cells = <2>;
90
91                         ralink,num-gpios = <16>;
92                         ralink,register-map = [ 00 04 08 0c
93                                                 10 14 18 1c
94                                                 20 24 ];
95
96                         status = "disabled";
97                 };
98
99                 gpio2: gpio@660 {
100                         compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
101                         reg = <0x660 0x24>;
102
103                         gpio-controller;
104                         #gpio-cells = <2>;
105
106                         ralink,num-gpios = <32>;
107                         ralink,register-map = [ 00 04 08 0c
108                                                 10 14 18 1c
109                                                 20 24 ];
110
111                         status = "disabled";
112                 };
113
114                 gpio3: gpio@688 {
115                         compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
116                         reg = <0x688 0x24>;
117
118                         gpio-controller;
119                         #gpio-cells = <2>;
120
121                         ralink,num-gpios = <24>;
122                         ralink,register-map = [ 00 04 08 0c
123                                                 10 14 18 1c
124                                                 20 24 ];
125
126                         status = "disabled";
127                 };
128
129                 spi0: spi@b00 {
130                         compatible = "ralink,rt3883-spi", "ralink,rt2880-spi";
131                         reg = <0xb00 0x100>;
132                         #address-cells = <1>;
133                         #size-cells = <0>;
134
135                         status = "disabled";
136                 };
137
138                 uartlite@c00 {
139                         compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
140                         reg = <0xc00 0x100>;
141
142                         interrupt-parent = <&intc>;
143                         interrupts = <12>;
144
145                         reg-shift = <2>;
146                 };
147         };
148
149         ethernet@10100000 {
150                 compatible = "ralink,rt3883-eth";
151                 reg = <0x10100000 10000>;
152
153                 interrupt-parent = <&cpuintc>;
154                 interrupts = <5>;
155
156                 status = "disabled";
157         };
158
159         pci@10140000 {
160                 compatible = "ralink,rt3883-pci";
161                 reg = <0x10140000 0x20000>;
162                 #address-cells = <1>;
163                 #size-cells = <1>;
164                 ranges; /* direct mapping */
165
166                 status = "disabled";
167
168                 pciintc: interrupt-controller {
169                         interrupt-controller;
170                         #address-cells = <0>;
171                         #interrupt-cells = <1>;
172
173                         interrupt-parent = <&cpuintc>;
174                         interrupts = <4>;
175                 };
176
177                 host-bridge {
178                         #address-cells = <3>;
179                         #size-cells = <2>;
180                         #interrupt-cells = <1>;
181
182                         device_type = "pci";
183
184                         bus-range = <0 255>;
185                         ranges = <
186                                 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
187                                 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
188                         >;
189
190                         interrupt-map-mask = <0xf800 0 0 7>;
191                         interrupt-map = <
192                                 /* IDSEL 17 */
193                                 0x8800 0 0 1 &pciintc 18
194                                 0x8800 0 0 2 &pciintc 18
195                                 0x8800 0 0 3 &pciintc 18
196                                 0x8800 0 0 4 &pciintc 18
197                                 /* IDSEL 18 */
198                                 0x9000 0 0 1 &pciintc 19
199                                 0x9000 0 0 2 &pciintc 19
200                                 0x9000 0 0 3 &pciintc 19
201                                 0x9000 0 0 4 &pciintc 19
202                         >;
203
204                         pci-bridge@1 {
205                                 reg = <0x0800 0 0 0 0>;
206                                 device_type = "pci";
207                                 #interrupt-cells = <1>;
208                                 #address-cells = <3>;
209                                 #size-cells = <2>;
210
211                                 status = "disabled";
212
213                                 ralink,pci-slot = <1>;
214
215                                 interrupt-map-mask = <0x0 0 0 0>;
216                                 interrupt-map = <0x0 0 0 0 &pciintc 20>;
217                         };
218
219                         pci-slot@17 {
220                                 reg = <0x8800 0 0 0 0>;
221                                 device_type = "pci";
222                                 #interrupt-cells = <1>;
223                                 #address-cells = <3>;
224                                 #size-cells = <2>;
225
226                                 ralink,pci-slot = <17>;
227
228                                 status = "disabled";
229                         };
230
231                         pci-slot@18 {
232                                 reg = <0x9000 0 0 0 0>;
233                                 device_type = "pci";
234                                 #interrupt-cells = <1>;
235                                 #address-cells = <3>;
236                                 #size-cells = <2>;
237
238                                 ralink,pci-slot = <18>;
239
240                                 status = "disabled";
241                         };
242                 };
243         };
244
245         wmac@10180000 {
246                 compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
247                 reg = <0x10180000 40000>;
248
249                 interrupt-parent = <&cpuintc>;
250                 interrupts = <6>;
251
252                 ralink,eeprom = "soc_wmac.eeprom";
253
254                 status = "disabled";
255         };
256
257         ehci@101c0000 {
258                 compatible = "ralink,rt3883-ehci", "ehci-platform";
259                 reg = <0x101c0000 0x1000>;
260
261                 interrupt-parent = <&intc>;
262                 interrupts = <18>;
263
264                 status = "disabled";
265         };
266
267         ohci@101c1000 {
268                 compatible = "ralink,rt3883-ohci", "ohci-platform";
269                 reg = <0x101c1000 0x1000>;
270
271                 interrupt-parent = <&intc>;
272                 interrupts = <18>;
273
274                 status = "disabled";
275         };
276 };