usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
[linux-2.6-microblaze.git] / arch / arm / boot / dts / versatile-ab.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
3
4 / {
5         model = "ARM Versatile AB";
6         compatible = "arm,versatile-ab";
7         #address-cells = <1>;
8         #size-cells = <1>;
9         interrupt-parent = <&vic>;
10
11         aliases {
12                 serial0 = &uart0;
13                 serial1 = &uart1;
14                 serial2 = &uart2;
15                 i2c0 = &i2c0;
16         };
17
18         chosen {
19                 stdout-path = &uart0;
20         };
21
22         memory {
23                 device_type = "memory";
24                 reg = <0x0 0x08000000>;
25         };
26
27         xtal24mhz: xtal24mhz@24M {
28                 #clock-cells = <0>;
29                 compatible = "fixed-clock";
30                 clock-frequency = <24000000>;
31         };
32
33         bridge {
34                 compatible = "ti,ths8134b", "ti,ths8134";
35                 #address-cells = <1>;
36                 #size-cells = <0>;
37
38                 ports {
39                         #address-cells = <1>;
40                         #size-cells = <0>;
41
42                         port@0 {
43                                 reg = <0>;
44
45                                 vga_bridge_in: endpoint {
46                                         remote-endpoint = <&clcd_pads_vga_dac>;
47                                 };
48                         };
49
50                         port@1 {
51                                 reg = <1>;
52
53                                 vga_bridge_out: endpoint {
54                                         remote-endpoint = <&vga_con_in>;
55                                 };
56                         };
57                 };
58         };
59
60         vga {
61                 compatible = "vga-connector";
62
63                 port {
64                         vga_con_in: endpoint {
65                                 remote-endpoint = <&vga_bridge_out>;
66                         };
67                 };
68         };
69
70         core-module@10000000 {
71                 compatible = "arm,core-module-versatile", "syscon", "simple-mfd";
72                 reg = <0x10000000 0x200>;
73
74                 led@08.0 {
75                         compatible = "register-bit-led";
76                         offset = <0x08>;
77                         mask = <0x01>;
78                         label = "versatile:0";
79                         linux,default-trigger = "heartbeat";
80                         default-state = "on";
81                 };
82                 led@08.1 {
83                         compatible = "register-bit-led";
84                         offset = <0x08>;
85                         mask = <0x02>;
86                         label = "versatile:1";
87                         linux,default-trigger = "mmc0";
88                         default-state = "off";
89                 };
90                 led@08.2 {
91                         compatible = "register-bit-led";
92                         offset = <0x08>;
93                         mask = <0x04>;
94                         label = "versatile:2";
95                         linux,default-trigger = "cpu0";
96                         default-state = "off";
97                 };
98                 led@08.3 {
99                         compatible = "register-bit-led";
100                         offset = <0x08>;
101                         mask = <0x08>;
102                         label = "versatile:3";
103                         default-state = "off";
104                 };
105                 led@08.4 {
106                         compatible = "register-bit-led";
107                         offset = <0x08>;
108                         mask = <0x10>;
109                         label = "versatile:4";
110                         default-state = "off";
111                 };
112                 led@08.5 {
113                         compatible = "register-bit-led";
114                         offset = <0x08>;
115                         mask = <0x20>;
116                         label = "versatile:5";
117                         default-state = "off";
118                 };
119                 led@08.6 {
120                         compatible = "register-bit-led";
121                         offset = <0x08>;
122                         mask = <0x40>;
123                         label = "versatile:6";
124                         default-state = "off";
125                 };
126                 led@08.7 {
127                         compatible = "register-bit-led";
128                         offset = <0x08>;
129                         mask = <0x80>;
130                         label = "versatile:7";
131                         default-state = "off";
132                 };
133
134                 /* OSC1 on AB, OSC4 on PB */
135                 osc1: cm_aux_osc@24M {
136                         #clock-cells = <0>;
137                         compatible = "arm,versatile-cm-auxosc";
138                         clocks = <&xtal24mhz>;
139                 };
140
141                 /* The timer clock is the 24 MHz oscillator divided to 1MHz */
142                 timclk: timclk@1M {
143                         #clock-cells = <0>;
144                         compatible = "fixed-factor-clock";
145                         clock-div = <24>;
146                         clock-mult = <1>;
147                         clocks = <&xtal24mhz>;
148                 };
149
150                 pclk: pclk@24M {
151                         #clock-cells = <0>;
152                         compatible = "fixed-factor-clock";
153                         clock-div = <1>;
154                         clock-mult = <1>;
155                         clocks = <&xtal24mhz>;
156                 };
157         };
158
159         flash@34000000 {
160                 /* 64 MiB NOR flash in non-interleaved chips */
161                 compatible = "arm,versatile-flash", "cfi-flash";
162                 reg = <0x34000000 0x04000000>;
163                 bank-width = <4>;
164                 partitions {
165                         compatible = "arm,arm-firmware-suite";
166                 };
167         };
168
169         i2c0: i2c@10002000 {
170                 #address-cells = <1>;
171                 #size-cells = <0>;
172                 compatible = "arm,versatile-i2c";
173                 reg = <0x10002000 0x1000>;
174
175                 rtc@68 {
176                         compatible = "dallas,ds1338";
177                         reg = <0x68>;
178                 };
179         };
180
181         net@10010000 {
182                 compatible = "smsc,lan91c111";
183                 reg = <0x10010000 0x10000>;
184                 interrupts = <25>;
185         };
186
187         lcd@10008000 {
188                 compatible = "arm,versatile-lcd";
189                 reg = <0x10008000 0x1000>;
190         };
191
192         amba {
193                 compatible = "simple-bus";
194                 #address-cells = <1>;
195                 #size-cells = <1>;
196                 ranges;
197
198                 vic: intc@10140000 {
199                         compatible = "arm,versatile-vic";
200                         interrupt-controller;
201                         #interrupt-cells = <1>;
202                         reg = <0x10140000 0x1000>;
203                         clear-mask = <0xffffffff>;
204                         valid-mask = <0xffffffff>;
205                 };
206
207                 sic: intc@10003000 {
208                         compatible = "arm,versatile-sic";
209                         interrupt-controller;
210                         #interrupt-cells = <1>;
211                         reg = <0x10003000 0x1000>;
212                         interrupt-parent = <&vic>;
213                         interrupts = <31>; /* Cascaded to vic */
214                         clear-mask = <0xffffffff>;
215                         /*
216                          * Valid interrupt lines mask according to
217                          * table 4-36 page 4-50 of ARM DUI 0225D
218                          */
219                         valid-mask = <0x0760031b>;
220                 };
221
222                 dma@10130000 {
223                         compatible = "arm,pl081", "arm,primecell";
224                         reg = <0x10130000 0x1000>;
225                         interrupts = <17>;
226                         clocks = <&pclk>;
227                         clock-names = "apb_pclk";
228                 };
229
230                 uart0: uart@101f1000 {
231                         compatible = "arm,pl011", "arm,primecell";
232                         reg = <0x101f1000 0x1000>;
233                         interrupts = <12>;
234                         clocks = <&xtal24mhz>, <&pclk>;
235                         clock-names = "uartclk", "apb_pclk";
236                 };
237
238                 uart1: uart@101f2000 {
239                         compatible = "arm,pl011", "arm,primecell";
240                         reg = <0x101f2000 0x1000>;
241                         interrupts = <13>;
242                         clocks = <&xtal24mhz>, <&pclk>;
243                         clock-names = "uartclk", "apb_pclk";
244                 };
245
246                 uart2: uart@101f3000 {
247                         compatible = "arm,pl011", "arm,primecell";
248                         reg = <0x101f3000 0x1000>;
249                         interrupts = <14>;
250                         clocks = <&xtal24mhz>, <&pclk>;
251                         clock-names = "uartclk", "apb_pclk";
252                 };
253
254                 smc@10100000 {
255                         compatible = "arm,primecell";
256                         reg = <0x10100000 0x1000>;
257                         clocks = <&pclk>;
258                         clock-names = "apb_pclk";
259                 };
260
261                 mpmc@10110000 {
262                         compatible = "arm,primecell";
263                         reg = <0x10110000 0x1000>;
264                         clocks = <&pclk>;
265                         clock-names = "apb_pclk";
266                 };
267
268                 display@10120000 {
269                         compatible = "arm,pl110", "arm,primecell";
270                         reg = <0x10120000 0x1000>;
271                         interrupts = <16>;
272                         clocks = <&osc1>, <&pclk>;
273                         clock-names = "clcdclk", "apb_pclk";
274                         /* 800x600 16bpp @ 36MHz works fine */
275                         max-memory-bandwidth = <54000000>;
276
277                         /*
278                          * This port is routed through a PLD (Programmable
279                          * Logic Device) that routes the output from the CLCD
280                          * (after transformations) to the VGA DAC and also an
281                          * external panel connector. The PLD is essential for
282                          * supporting RGB565/BGR565.
283                          *
284                          * The signals from the port thus reaches two endpoints.
285                          * The PLD is managed through a few special bits in the
286                          * FPGA "sysreg".
287                          *
288                          * This arrangement can be clearly seen in
289                          * ARM DUI 0225D, page 3-41, figure 3-19.
290                          */
291                         port@0 {
292                                 #address-cells = <1>;
293                                 #size-cells = <0>;
294
295                                 clcd_pads_panel: endpoint@0 {
296                                         reg = <0>;
297                                         remote-endpoint = <&panel_in>;
298                                         arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
299                                 };
300                                 clcd_pads_vga_dac: endpoint@1 {
301                                         reg = <1>;
302                                         remote-endpoint = <&vga_bridge_in>;
303                                         arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
304                                 };
305                         };
306                 };
307
308                 sctl@101e0000 {
309                         compatible = "arm,primecell";
310                         reg = <0x101e0000 0x1000>;
311                         clocks = <&pclk>;
312                         clock-names = "apb_pclk";
313                 };
314
315                 watchdog@101e1000 {
316                         compatible = "arm,primecell";
317                         reg = <0x101e1000 0x1000>;
318                         interrupts = <0>;
319                         clocks = <&pclk>;
320                         clock-names = "apb_pclk";
321                 };
322
323                 timer@101e2000 {
324                         compatible = "arm,sp804", "arm,primecell";
325                         reg = <0x101e2000 0x1000>;
326                         interrupts = <4>;
327                         clocks = <&timclk>, <&timclk>, <&pclk>;
328                         clock-names = "timer0", "timer1", "apb_pclk";
329                 };
330
331                 timer@101e3000 {
332                         compatible = "arm,sp804", "arm,primecell";
333                         reg = <0x101e3000 0x1000>;
334                         interrupts = <5>;
335                         clocks = <&timclk>, <&timclk>, <&pclk>;
336                         clock-names = "timer0", "timer1", "apb_pclk";
337                 };
338
339                 gpio0: gpio@101e4000 {
340                         compatible = "arm,pl061", "arm,primecell";
341                         reg = <0x101e4000 0x1000>;
342                         gpio-controller;
343                         interrupts = <6>;
344                         #gpio-cells = <2>;
345                         interrupt-controller;
346                         #interrupt-cells = <2>;
347                         clocks = <&pclk>;
348                         clock-names = "apb_pclk";
349                 };
350
351                 gpio1: gpio@101e5000 {
352                         compatible = "arm,pl061", "arm,primecell";
353                         reg = <0x101e5000 0x1000>;
354                         interrupts = <7>;
355                         gpio-controller;
356                         #gpio-cells = <2>;
357                         interrupt-controller;
358                         #interrupt-cells = <2>;
359                         clocks = <&pclk>;
360                         clock-names = "apb_pclk";
361                 };
362
363                 rtc@101e8000 {
364                         compatible = "arm,pl030", "arm,primecell";
365                         reg = <0x101e8000 0x1000>;
366                         interrupts = <10>;
367                         clocks = <&pclk>;
368                         clock-names = "apb_pclk";
369                 };
370
371                 sci@101f0000 {
372                         compatible = "arm,primecell";
373                         reg = <0x101f0000 0x1000>;
374                         interrupts = <15>;
375                         clocks = <&pclk>;
376                         clock-names = "apb_pclk";
377                 };
378
379                 spi@101f4000 {
380                         compatible = "arm,pl022", "arm,primecell";
381                         reg = <0x101f4000 0x1000>;
382                         interrupts = <11>;
383                         clocks = <&xtal24mhz>, <&pclk>;
384                         clock-names = "SSPCLK", "apb_pclk";
385                 };
386
387                 fpga {
388                         compatible = "arm,versatile-fpga", "simple-bus";
389                         #address-cells = <1>;
390                         #size-cells = <1>;
391                         ranges = <0 0x10000000 0x10000>;
392
393                         sysreg@0 {
394                                 compatible = "arm,versatile-sysreg", "syscon", "simple-mfd";
395                                 reg = <0x00000 0x1000>;
396
397                                 panel: display@0 {
398                                         compatible = "arm,versatile-tft-panel";
399
400                                         port {
401                                                 panel_in: endpoint {
402                                                         remote-endpoint = <&clcd_pads_panel>;
403                                                 };
404                                         };
405                                 };
406                         };
407
408                         aaci@4000 {
409                                 compatible = "arm,primecell";
410                                 reg = <0x4000 0x1000>;
411                                 interrupts = <24>;
412                                 clocks = <&pclk>;
413                                 clock-names = "apb_pclk";
414                         };
415                         mmc@5000 {
416                                 compatible = "arm,pl180", "arm,primecell";
417                                 reg = <0x5000 0x1000>;
418                                 interrupts-extended = <&vic 22 &sic 1>;
419                                 clocks = <&xtal24mhz>, <&pclk>;
420                                 clock-names = "mclk", "apb_pclk";
421                         };
422                         kmi@6000 {
423                                 compatible = "arm,pl050", "arm,primecell";
424                                 reg = <0x6000 0x1000>;
425                                 interrupt-parent = <&sic>;
426                                 interrupts = <3>;
427                                 clocks = <&xtal24mhz>, <&pclk>;
428                                 clock-names = "KMIREFCLK", "apb_pclk";
429                         };
430                         kmi@7000 {
431                                 compatible = "arm,pl050", "arm,primecell";
432                                 reg = <0x7000 0x1000>;
433                                 interrupt-parent = <&sic>;
434                                 interrupts = <4>;
435                                 clocks = <&xtal24mhz>, <&pclk>;
436                                 clock-names = "KMIREFCLK", "apb_pclk";
437                         };
438                 };
439         };
440 };