Merge remote-tracking branch 'spi/fix/core' into spi-linus
[linux-drm-fsl-dcu.git] / arch / arm / boot / dts / imx23.dtsi
1 /*
2  * Copyright 2012 Freescale Semiconductor, Inc.
3  *
4  * The code contained herein is licensed under the GNU General Public
5  * License. You may obtain a copy of the GNU General Public License
6  * Version 2 or later at the following locations:
7  *
8  * http://www.opensource.org/licenses/gpl-license.html
9  * http://www.gnu.org/copyleft/gpl.html
10  */
11
12 #include "skeleton.dtsi"
13 #include "imx23-pinfunc.h"
14
15 / {
16         interrupt-parent = <&icoll>;
17
18         aliases {
19                 gpio0 = &gpio0;
20                 gpio1 = &gpio1;
21                 gpio2 = &gpio2;
22                 serial0 = &auart0;
23                 serial1 = &auart1;
24                 spi0 = &ssp0;
25                 spi1 = &ssp1;
26         };
27
28         cpus {
29                 #address-cells = <0>;
30                 #size-cells = <0>;
31
32                 cpu {
33                         compatible = "arm,arm926ej-s";
34                         device_type = "cpu";
35                 };
36         };
37
38         apb@80000000 {
39                 compatible = "simple-bus";
40                 #address-cells = <1>;
41                 #size-cells = <1>;
42                 reg = <0x80000000 0x80000>;
43                 ranges;
44
45                 apbh@80000000 {
46                         compatible = "simple-bus";
47                         #address-cells = <1>;
48                         #size-cells = <1>;
49                         reg = <0x80000000 0x40000>;
50                         ranges;
51
52                         icoll: interrupt-controller@80000000 {
53                                 compatible = "fsl,imx23-icoll", "fsl,icoll";
54                                 interrupt-controller;
55                                 #interrupt-cells = <1>;
56                                 reg = <0x80000000 0x2000>;
57                         };
58
59                         dma_apbh: dma-apbh@80004000 {
60                                 compatible = "fsl,imx23-dma-apbh";
61                                 reg = <0x80004000 0x2000>;
62                                 interrupts = <0 14 20 0
63                                               13 13 13 13>;
64                                 interrupt-names = "empty", "ssp0", "ssp1", "empty",
65                                                   "gpmi0", "gpmi1", "gpmi2", "gpmi3";
66                                 #dma-cells = <1>;
67                                 dma-channels = <8>;
68                                 clocks = <&clks 15>;
69                         };
70
71                         ecc@80008000 {
72                                 reg = <0x80008000 0x2000>;
73                                 status = "disabled";
74                         };
75
76                         gpmi-nand@8000c000 {
77                                 compatible = "fsl,imx23-gpmi-nand";
78                                 #address-cells = <1>;
79                                 #size-cells = <1>;
80                                 reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
81                                 reg-names = "gpmi-nand", "bch";
82                                 interrupts = <56>;
83                                 interrupt-names = "bch";
84                                 clocks = <&clks 34>;
85                                 clock-names = "gpmi_io";
86                                 dmas = <&dma_apbh 4>;
87                                 dma-names = "rx-tx";
88                                 status = "disabled";
89                         };
90
91                         ssp0: ssp@80010000 {
92                                 reg = <0x80010000 0x2000>;
93                                 interrupts = <15>;
94                                 clocks = <&clks 33>;
95                                 dmas = <&dma_apbh 1>;
96                                 dma-names = "rx-tx";
97                                 status = "disabled";
98                         };
99
100                         etm@80014000 {
101                                 reg = <0x80014000 0x2000>;
102                                 status = "disabled";
103                         };
104
105                         pinctrl@80018000 {
106                                 #address-cells = <1>;
107                                 #size-cells = <0>;
108                                 compatible = "fsl,imx23-pinctrl", "simple-bus";
109                                 reg = <0x80018000 0x2000>;
110
111                                 gpio0: gpio@0 {
112                                         compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
113                                         interrupts = <16>;
114                                         gpio-controller;
115                                         #gpio-cells = <2>;
116                                         interrupt-controller;
117                                         #interrupt-cells = <2>;
118                                 };
119
120                                 gpio1: gpio@1 {
121                                         compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
122                                         interrupts = <17>;
123                                         gpio-controller;
124                                         #gpio-cells = <2>;
125                                         interrupt-controller;
126                                         #interrupt-cells = <2>;
127                                 };
128
129                                 gpio2: gpio@2 {
130                                         compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
131                                         interrupts = <18>;
132                                         gpio-controller;
133                                         #gpio-cells = <2>;
134                                         interrupt-controller;
135                                         #interrupt-cells = <2>;
136                                 };
137
138                                 duart_pins_a: duart@0 {
139                                         reg = <0>;
140                                         fsl,pinmux-ids = <
141                                                 MX23_PAD_PWM0__DUART_RX
142                                                 MX23_PAD_PWM1__DUART_TX
143                                         >;
144                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
145                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
146                                         fsl,pull-up = <MXS_PULL_DISABLE>;
147                                 };
148
149                                 auart0_pins_a: auart0@0 {
150                                         reg = <0>;
151                                         fsl,pinmux-ids = <
152                                                 MX23_PAD_AUART1_RX__AUART1_RX
153                                                 MX23_PAD_AUART1_TX__AUART1_TX
154                                                 MX23_PAD_AUART1_CTS__AUART1_CTS
155                                                 MX23_PAD_AUART1_RTS__AUART1_RTS
156                                         >;
157                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
158                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
159                                         fsl,pull-up = <MXS_PULL_DISABLE>;
160                                 };
161
162                                 auart0_2pins_a: auart0-2pins@0 {
163                                         reg = <0>;
164                                         fsl,pinmux-ids = <
165                                                 MX23_PAD_I2C_SCL__AUART1_TX
166                                                 MX23_PAD_I2C_SDA__AUART1_RX
167                                         >;
168                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
169                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
170                                         fsl,pull-up = <MXS_PULL_DISABLE>;
171                                 };
172
173                                 gpmi_pins_a: gpmi-nand@0 {
174                                         reg = <0>;
175                                         fsl,pinmux-ids = <
176                                                 MX23_PAD_GPMI_D00__GPMI_D00
177                                                 MX23_PAD_GPMI_D01__GPMI_D01
178                                                 MX23_PAD_GPMI_D02__GPMI_D02
179                                                 MX23_PAD_GPMI_D03__GPMI_D03
180                                                 MX23_PAD_GPMI_D04__GPMI_D04
181                                                 MX23_PAD_GPMI_D05__GPMI_D05
182                                                 MX23_PAD_GPMI_D06__GPMI_D06
183                                                 MX23_PAD_GPMI_D07__GPMI_D07
184                                                 MX23_PAD_GPMI_CLE__GPMI_CLE
185                                                 MX23_PAD_GPMI_ALE__GPMI_ALE
186                                                 MX23_PAD_GPMI_RDY0__GPMI_RDY0
187                                                 MX23_PAD_GPMI_RDY1__GPMI_RDY1
188                                                 MX23_PAD_GPMI_WPN__GPMI_WPN
189                                                 MX23_PAD_GPMI_WRN__GPMI_WRN
190                                                 MX23_PAD_GPMI_RDN__GPMI_RDN
191                                                 MX23_PAD_GPMI_CE1N__GPMI_CE1N
192                                                 MX23_PAD_GPMI_CE0N__GPMI_CE0N
193                                         >;
194                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
195                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
196                                         fsl,pull-up = <MXS_PULL_DISABLE>;
197                                 };
198
199                                 gpmi_pins_fixup: gpmi-pins-fixup {
200                                         fsl,pinmux-ids = <
201                                                 MX23_PAD_GPMI_WPN__GPMI_WPN
202                                                 MX23_PAD_GPMI_WRN__GPMI_WRN
203                                                 MX23_PAD_GPMI_RDN__GPMI_RDN
204                                         >;
205                                         fsl,drive-strength = <MXS_DRIVE_12mA>;
206                                 };
207
208                                 mmc0_4bit_pins_a: mmc0-4bit@0 {
209                                         reg = <0>;
210                                         fsl,pinmux-ids = <
211                                                 MX23_PAD_SSP1_DATA0__SSP1_DATA0
212                                                 MX23_PAD_SSP1_DATA1__SSP1_DATA1
213                                                 MX23_PAD_SSP1_DATA2__SSP1_DATA2
214                                                 MX23_PAD_SSP1_DATA3__SSP1_DATA3
215                                                 MX23_PAD_SSP1_CMD__SSP1_CMD
216                                                 MX23_PAD_SSP1_SCK__SSP1_SCK
217                                         >;
218                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
219                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
220                                         fsl,pull-up = <MXS_PULL_ENABLE>;
221                                 };
222
223                                 mmc0_8bit_pins_a: mmc0-8bit@0 {
224                                         reg = <0>;
225                                         fsl,pinmux-ids = <
226                                                 MX23_PAD_SSP1_DATA0__SSP1_DATA0
227                                                 MX23_PAD_SSP1_DATA1__SSP1_DATA1
228                                                 MX23_PAD_SSP1_DATA2__SSP1_DATA2
229                                                 MX23_PAD_SSP1_DATA3__SSP1_DATA3
230                                                 MX23_PAD_GPMI_D08__SSP1_DATA4
231                                                 MX23_PAD_GPMI_D09__SSP1_DATA5
232                                                 MX23_PAD_GPMI_D10__SSP1_DATA6
233                                                 MX23_PAD_GPMI_D11__SSP1_DATA7
234                                                 MX23_PAD_SSP1_CMD__SSP1_CMD
235                                                 MX23_PAD_SSP1_DETECT__SSP1_DETECT
236                                                 MX23_PAD_SSP1_SCK__SSP1_SCK
237                                         >;
238                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
239                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
240                                         fsl,pull-up = <MXS_PULL_ENABLE>;
241                                 };
242
243                                 mmc0_pins_fixup: mmc0-pins-fixup {
244                                         fsl,pinmux-ids = <
245                                                 MX23_PAD_SSP1_DETECT__SSP1_DETECT
246                                                 MX23_PAD_SSP1_SCK__SSP1_SCK
247                                         >;
248                                         fsl,pull-up = <MXS_PULL_DISABLE>;
249                                 };
250
251                                 pwm2_pins_a: pwm2@0 {
252                                         reg = <0>;
253                                         fsl,pinmux-ids = <
254                                                 MX23_PAD_PWM2__PWM2
255                                         >;
256                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
257                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
258                                         fsl,pull-up = <MXS_PULL_DISABLE>;
259                                 };
260
261                                 lcdif_24bit_pins_a: lcdif-24bit@0 {
262                                         reg = <0>;
263                                         fsl,pinmux-ids = <
264                                                 MX23_PAD_LCD_D00__LCD_D00
265                                                 MX23_PAD_LCD_D01__LCD_D01
266                                                 MX23_PAD_LCD_D02__LCD_D02
267                                                 MX23_PAD_LCD_D03__LCD_D03
268                                                 MX23_PAD_LCD_D04__LCD_D04
269                                                 MX23_PAD_LCD_D05__LCD_D05
270                                                 MX23_PAD_LCD_D06__LCD_D06
271                                                 MX23_PAD_LCD_D07__LCD_D07
272                                                 MX23_PAD_LCD_D08__LCD_D08
273                                                 MX23_PAD_LCD_D09__LCD_D09
274                                                 MX23_PAD_LCD_D10__LCD_D10
275                                                 MX23_PAD_LCD_D11__LCD_D11
276                                                 MX23_PAD_LCD_D12__LCD_D12
277                                                 MX23_PAD_LCD_D13__LCD_D13
278                                                 MX23_PAD_LCD_D14__LCD_D14
279                                                 MX23_PAD_LCD_D15__LCD_D15
280                                                 MX23_PAD_LCD_D16__LCD_D16
281                                                 MX23_PAD_LCD_D17__LCD_D17
282                                                 MX23_PAD_GPMI_D08__LCD_D18
283                                                 MX23_PAD_GPMI_D09__LCD_D19
284                                                 MX23_PAD_GPMI_D10__LCD_D20
285                                                 MX23_PAD_GPMI_D11__LCD_D21
286                                                 MX23_PAD_GPMI_D12__LCD_D22
287                                                 MX23_PAD_GPMI_D13__LCD_D23
288                                                 MX23_PAD_LCD_DOTCK__LCD_DOTCK
289                                                 MX23_PAD_LCD_ENABLE__LCD_ENABLE
290                                                 MX23_PAD_LCD_HSYNC__LCD_HSYNC
291                                                 MX23_PAD_LCD_VSYNC__LCD_VSYNC
292                                         >;
293                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
294                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
295                                         fsl,pull-up = <MXS_PULL_DISABLE>;
296                                 };
297
298                                 spi2_pins_a: spi2@0 {
299                                         reg = <0>;
300                                         fsl,pinmux-ids = <
301                                                 MX23_PAD_GPMI_WRN__SSP2_SCK
302                                                 MX23_PAD_GPMI_RDY1__SSP2_CMD
303                                                 MX23_PAD_GPMI_D00__SSP2_DATA0
304                                                 MX23_PAD_GPMI_D03__SSP2_DATA3
305                                         >;
306                                         fsl,drive-strength = <MXS_DRIVE_8mA>;
307                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
308                                         fsl,pull-up = <MXS_PULL_ENABLE>;
309                                 };
310                         };
311
312                         digctl@8001c000 {
313                                 compatible = "fsl,imx23-digctl";
314                                 reg = <0x8001c000 2000>;
315                                 status = "disabled";
316                         };
317
318                         emi@80020000 {
319                                 reg = <0x80020000 0x2000>;
320                                 status = "disabled";
321                         };
322
323                         dma_apbx: dma-apbx@80024000 {
324                                 compatible = "fsl,imx23-dma-apbx";
325                                 reg = <0x80024000 0x2000>;
326                                 interrupts = <7 5 9 26
327                                               19 0 25 23
328                                               60 58 9 0
329                                               0 0 0 0>;
330                                 interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
331                                                   "saif0", "empty", "auart0-rx", "auart0-tx",
332                                                   "auart1-rx", "auart1-tx", "saif1", "empty",
333                                                   "empty", "empty", "empty", "empty";
334                                 #dma-cells = <1>;
335                                 dma-channels = <16>;
336                                 clocks = <&clks 16>;
337                         };
338
339                         dcp@80028000 {
340                                 reg = <0x80028000 0x2000>;
341                                 status = "disabled";
342                         };
343
344                         pxp@8002a000 {
345                                 reg = <0x8002a000 0x2000>;
346                                 status = "disabled";
347                         };
348
349                         ocotp@8002c000 {
350                                 compatible = "fsl,ocotp";
351                                 reg = <0x8002c000 0x2000>;
352                                 status = "disabled";
353                         };
354
355                         axi-ahb@8002e000 {
356                                 reg = <0x8002e000 0x2000>;
357                                 status = "disabled";
358                         };
359
360                         lcdif@80030000 {
361                                 compatible = "fsl,imx23-lcdif";
362                                 reg = <0x80030000 2000>;
363                                 interrupts = <46 45>;
364                                 clocks = <&clks 38>;
365                                 status = "disabled";
366                         };
367
368                         ssp1: ssp@80034000 {
369                                 reg = <0x80034000 0x2000>;
370                                 interrupts = <2>;
371                                 clocks = <&clks 33>;
372                                 dmas = <&dma_apbh 2>;
373                                 dma-names = "rx-tx";
374                                 status = "disabled";
375                         };
376
377                         tvenc@80038000 {
378                                 reg = <0x80038000 0x2000>;
379                                 status = "disabled";
380                         };
381                 };
382
383                 apbx@80040000 {
384                         compatible = "simple-bus";
385                         #address-cells = <1>;
386                         #size-cells = <1>;
387                         reg = <0x80040000 0x40000>;
388                         ranges;
389
390                         clks: clkctrl@80040000 {
391                                 compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
392                                 reg = <0x80040000 0x2000>;
393                                 #clock-cells = <1>;
394                         };
395
396                         saif0: saif@80042000 {
397                                 reg = <0x80042000 0x2000>;
398                                 dmas = <&dma_apbx 4>;
399                                 dma-names = "rx-tx";
400                                 status = "disabled";
401                         };
402
403                         power@80044000 {
404                                 reg = <0x80044000 0x2000>;
405                                 status = "disabled";
406                         };
407
408                         saif1: saif@80046000 {
409                                 reg = <0x80046000 0x2000>;
410                                 dmas = <&dma_apbx 10>;
411                                 dma-names = "rx-tx";
412                                 status = "disabled";
413                         };
414
415                         audio-out@80048000 {
416                                 reg = <0x80048000 0x2000>;
417                                 dmas = <&dma_apbx 1>;
418                                 dma-names = "tx";
419                                 status = "disabled";
420                         };
421
422                         audio-in@8004c000 {
423                                 reg = <0x8004c000 0x2000>;
424                                 dmas = <&dma_apbx 0>;
425                                 dma-names = "rx";
426                                 status = "disabled";
427                         };
428
429                         lradc@80050000 {
430                                 compatible = "fsl,imx23-lradc";
431                                 reg = <0x80050000 0x2000>;
432                                 interrupts = <36 37 38 39 40 41 42 43 44>;
433                                 status = "disabled";
434                                 clocks = <&clks 26>;
435                         };
436
437                         spdif@80054000 {
438                                 reg = <0x80054000 2000>;
439                                 dmas = <&dma_apbx 2>;
440                                 dma-names = "tx";
441                                 status = "disabled";
442                         };
443
444                         i2c@80058000 {
445                                 reg = <0x80058000 0x2000>;
446                                 dmas = <&dma_apbx 3>;
447                                 dma-names = "rx-tx";
448                                 status = "disabled";
449                         };
450
451                         rtc@8005c000 {
452                                 compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
453                                 reg = <0x8005c000 0x2000>;
454                                 interrupts = <22>;
455                         };
456
457                         pwm: pwm@80064000 {
458                                 compatible = "fsl,imx23-pwm";
459                                 reg = <0x80064000 0x2000>;
460                                 clocks = <&clks 30>;
461                                 #pwm-cells = <2>;
462                                 fsl,pwm-number = <5>;
463                                 status = "disabled";
464                         };
465
466                         timrot@80068000 {
467                                 compatible = "fsl,imx23-timrot", "fsl,timrot";
468                                 reg = <0x80068000 0x2000>;
469                                 interrupts = <28 29 30 31>;
470                                 clocks = <&clks 28>;
471                         };
472
473                         auart0: serial@8006c000 {
474                                 compatible = "fsl,imx23-auart";
475                                 reg = <0x8006c000 0x2000>;
476                                 interrupts = <24>;
477                                 clocks = <&clks 32>;
478                                 dmas = <&dma_apbx 6>, <&dma_apbx 7>;
479                                 dma-names = "rx", "tx";
480                                 status = "disabled";
481                         };
482
483                         auart1: serial@8006e000 {
484                                 compatible = "fsl,imx23-auart";
485                                 reg = <0x8006e000 0x2000>;
486                                 interrupts = <59>;
487                                 clocks = <&clks 32>;
488                                 dmas = <&dma_apbx 8>, <&dma_apbx 9>;
489                                 dma-names = "rx", "tx";
490                                 status = "disabled";
491                         };
492
493                         duart: serial@80070000 {
494                                 compatible = "arm,pl011", "arm,primecell";
495                                 reg = <0x80070000 0x2000>;
496                                 interrupts = <0>;
497                                 clocks = <&clks 32>, <&clks 16>;
498                                 clock-names = "uart", "apb_pclk";
499                                 status = "disabled";
500                         };
501
502                         usbphy0: usbphy@8007c000 {
503                                 compatible = "fsl,imx23-usbphy";
504                                 reg = <0x8007c000 0x2000>;
505                                 clocks = <&clks 41>;
506                                 status = "disabled";
507                         };
508                 };
509         };
510
511         ahb@80080000 {
512                 compatible = "simple-bus";
513                 #address-cells = <1>;
514                 #size-cells = <1>;
515                 reg = <0x80080000 0x80000>;
516                 ranges;
517
518                 usb0: usb@80080000 {
519                         compatible = "fsl,imx23-usb", "fsl,imx27-usb";
520                         reg = <0x80080000 0x40000>;
521                         interrupts = <11>;
522                         fsl,usbphy = <&usbphy0>;
523                         clocks = <&clks 40>;
524                         status = "disabled";
525                 };
526         };
527 };