]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/imx28-tx28.dts
Ka-Ro DT:
[karo-tx-linux.git] / arch / arm / boot / dts / imx28-tx28.dts
1 /*
2  * Copyright 2013 <heiko.abraham@hella-gutmann.com>
3  * Copyright 2013 <OW@KARO-electronics.de>
4  * based on imx28.dtsi
5  *   Copyright 2011 Freescale Semiconductor, Inc.
6  *   Copyright 2011 Linaro Ltd.
7  *
8  * The code contained herein is licensed under the GNU General Public
9  * License. You may obtain a copy of the GNU General Public License
10  * Version 2 at the following locations:
11  *
12  * http://www.opensource.org/licenses/gpl-license.html
13  * http://www.gnu.org/copyleft/gpl.html
14  */
15
16 /dts-v1/;
17 /include/ "imx28.dtsi"
18
19 / {
20         model = "Ka-Ro electronics TX28 module";
21         compatible = "karo,tx28", "fsl,imx28";
22
23         chosen {
24                 bootargs = "init=/linuxrc console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=jffs2 ro debug panic=1";
25         };
26
27         memory {
28                 reg = <0x40000000 0x08000000>;
29         };
30
31         apb@80000000 {
32                 apbh@80000000 {
33                         gpmi-nand@8000c000 {
34                             #address-cells = <1>;
35                             #size-cells = <1>;
36                             pinctrl-names = "default";
37                             pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
38                             nand-on-flash-bbt;
39                             status = "okay";
40                         };
41
42                         ssp0: ssp@80010000 {
43                                 compatible = "fsl,imx28-mmc";
44                                 pinctrl-names = "default";
45                                 pinctrl-0 = <&mmc0_4bit_pins_a
46                                              &mmc0_cd_cfg
47                                              &mmc0_sck_cfg>;
48                                 bus-width = <4>;
49                                 /* wp-gpios = <&gpio2 20 0>; */
50                                 /* wp-inverted; */
51                                 status = "okay";
52                         };
53
54                         pinctrl@80018000 {
55                                 pinctrl-names = "default";
56                                 pinctrl-0 = <&hog_pins_a>;
57                                 hog_pins_a: hog@0 {
58                                         reg = <0>;
59                                         fsl,pinmux-ids = <
60                                                 0x40a3          /* MX28_PAD_ENET0_RXD3__GPIO_4_10 */
61                                         >;
62                                         fsl,drive-strength = <0>;
63                                         fsl,voltage = <1>;
64                                         fsl,pull-up = <0>;
65                                 };
66
67                                 mac0_pins_gpio: mac0-gpio-mode@0 {
68                                         reg = <0>;
69                                         fsl,pinmux-ids = <
70                                                 0x4003          /* MX28_PAD_ENET0_MDC__GPIO_4_0 */
71                                                 0x4013          /* MX28_PAD_ENET0_MDIO__GPIO_4_1 */
72                                                 0x4023          /* MX28_PAD_ENET0_RX_EN__GPIO_4_2 */
73                                                 0x4033          /* MX28_PAD_ENET0_RXD0__GPIO_4_3 */
74                                                 0x4043          /* MX28_PAD_ENET0_RXD1__GPIO_4_4 */
75                                                 0x4063          /* MX28_PAD_ENET0_TX_EN__GPIO_4_6 */
76                                                 0x4073          /* MX28_PAD_ENET0_TXD0__GPIO_4_7 */
77                                                 0x4083          /* MX28_PAD_ENET0_TXD1__GPIO_4_8 */
78                                                 0x4103          /* MX28_PAD_ENET_CLK__GPIO_4_16 */
79                                         >;
80                                         fsl,drive-strength = <0>;
81                                         fsl,voltage = <1>;
82                                         fsl,pull-up = <0>;
83                                 };
84
85                                 lcdif_pins_tx28: lcdif-tx28@0 {
86                                         reg = <0>;
87                                         fsl,pinmux-ids = <
88                                                 0x11e0          /* MX28_PAD_LCD_DOTCLK__LCD_DOTCLK */
89                                                 0x11f0          /* MX28_PAD_LCD_ENABLE__LCD_ENABLE */
90                                                 0x11c0          /* MX28_PAD_LCD_VSYNC__LCD_VSYNC */
91                                                 0x11d0          /* MX28_PAD_LCD_HSYNC__LCD_HSYNC */
92                                                 0x11f3          /* MX28_PAD_LCD_ENABLE__GPIO_1_31 - Enable */
93                                                 0x31e3          /* MX28_PAD_LCD_RESET__GPIO_3_30 - Reset */
94                                         >;
95                                         fsl,drive-strength = <0>;
96                                         fsl,voltage = <1>;
97                                         fsl,pull-up = <0>;
98                                 };
99
100                                 duart_2pins_a: duart-2pins@0 {
101                                         reg = <0>;
102                                         fsl,pinmux-ids = <
103                                                 0x3022          /* MX28_PAD_AUART0_CTS__DUART_RX */
104                                                 0x3032          /* MX28_PAD_AUART0_RTS__DUART_TX */
105                                         >;
106                                         fsl,drive-strength = <0>;
107                                         fsl,voltage = <1>;
108                                         fsl,pull-up = <0>;
109                                 };
110
111                                 auart2_2pins_a: auart2-2pins@0 {
112                                         reg = <0>;
113                                         fsl,pinmux-ids = <
114                                                 0x2111          /* MX28_PAD_SSP2_MOSI__AUART2_TX */
115                                                 0x2101          /* MX28_PAD_SSP2_SCK__AUART2_RX */
116                                         >;
117                                         fsl,drive-strength = <0>;
118                                         fsl,voltage = <1>;
119                                         fsl,pull-up = <0>;
120                                 };
121
122                                 auart4_2pins_a: auart4-2pins@0 {
123                                         reg = <0>;
124                                         fsl,pinmux-ids = <
125                                                 0x3172          /* MX28_PAD_SAIF0_SDATA0__AUART4_TX */
126                                                 0x3162          /* MX28_PAD_SAIF0_BITCLK__AUART4_RX */
127                                         >;
128                                         fsl,drive-strength = <0>;
129                                         fsl,voltage = <1>;
130                                         fsl,pull-up = <0>;
131                                 };
132
133                                 usbphy0_pins_c: usbphy0@0 {
134                                         reg = <0>;
135                                         fsl,pinmux-ids = <
136                                                 0x31b3          /* MX28_PAD_SPDIF__GPIO_3_27 - USBH_VBUSEN */
137                                                 0x4143          /* MX28_PAD_JTAG_RTCK__GPIO_4_20 - USBH_OC */
138                                         >;
139                                         fsl,drive-strength = <2>;
140                                         fsl,voltage = <1>;
141                                         fsl,pull-up = <0>;
142                                 };
143
144                                 usbphy1_pins_b: usbphy1@0 {
145                                         reg = <0>;
146                                         fsl,pinmux-ids = <
147                                                 0x0123          /* MX28_PAD_GPMI_CE2N__GPIO_0_18 - USBOTG_VBUSEN */
148                                                 0x0133          /* MX28_PAD_GPMI_CE3N__GPIO_0_19 - USBOTH_OC */
149                                         >;
150                                         fsl,drive-strength = <2>;
151                                         fsl,voltage = <1>;
152                                         fsl,pull-up = <0>;
153                                 };
154
155                         };
156
157                         lcdif@80030000 {
158                                 pinctrl-names = "default";
159                                 pinctrl-0 = <&lcdif_24bit_pins_a
160                                              &lcdif_pins_tx28>;
161                                 panel-enable-gpios = <&gpio1 27 0>;
162                                 status = "okay";
163                         };
164
165                         can0: can@80032000 {
166                                 pinctrl-names = "default";
167                                 pinctrl-0 = <&can0_pins_a>;
168                                 status = "okay";
169                         };
170 /*
171                         can1: can@80034000 {
172                                 pinctrl-names = "default";
173                                 pinctrl-0 = <&can1_pins_a>;
174                                 status = "okay";
175                         };
176
177                         pxp@8002a000 {
178                                 status = "okay";
179                         };
180
181                         ocotp@8002c000 {
182                                 status = "okay";
183                         };
184 */
185                 };
186
187                 apbx@80040000 {
188                         i2c0: i2c@80058000 {
189                                 pinctrl-names = "default";
190                                 pinctrl-0 = <&i2c0_pins_a>;
191                                 clock-frequency = <400000>;
192                                 status = "okay";
193                                 ds1339: rtc@68 {
194                                 compatible = "mxim,ds1339";
195                                 reg = <0x68>;
196                                 trickle-charge = <0xa5>;
197                                 };
198 /*
199                                 pca9554: pca953x@20 {
200                                         compatible = "nxp,pca953x";
201                                         reg = <0x20>;
202                                         interrupt-parent = <&gpio3>;
203                                         interrupts = <20>;
204                                         gpio-controller;
205                                         #gpio-cells = <2>;
206                                         };
207 */
208 /* unfinished - required platform data bugfix */
209 /*
210                                 touchscreen: tsc2007@48 {
211                                         compatible = "ti,tsc2007";
212                                         reg = <0x48>;
213                                         interrupt-parent = <&gpio3>;
214                                         interrupts = <20 0>;
215                                         pendown-gpio = <&gpio3 20 1>;
216                                         model = "2007";
217                                         x-plate-ohms = <660>;
218                                         };
219 */
220                                 polytouch: edt-ft5x06@ {
221                                         compatible = "edt,edt-ft5x06";
222                                         reg = <0x38>;
223                                         interrupt-parent = <&gpio2>;
224                                         interrupts = <5>;
225                                         reset-switch = <&edt_ft5x06_reset>;
226                                         wake-switch = <&edt_ft5x06_wake>;
227                                         irq-switch = <&edt_ft5x06_irq>;
228                                         };
229
230                                 codec: sgtl5000@0a {
231                                         compatible = "fsl,sgtl5000";
232                                         reg = <0x0a>;
233                                         VDDA-supply = <&reg_2p5v>;
234                                         VDDIO-supply = <&reg_3p3v>;
235                                         };
236                         };
237
238                         lradc@80050000 {
239                                 fsl,lradc-touchscreen-wires = <4>;
240                                 status = "okay";
241                         };
242
243                         hsadc@80002000 {
244                                 status = "okay";
245                         };
246
247                         onewire@0 {
248                                 compatible = "w1-gpio";
249                                 gpios = <&gpio2 7 1>;
250                         };
251
252                         pwm: pwm@80064000 {
253                                 pinctrl-names = "default";
254                                 pinctrl-0 = <&pwm0_pins_a>;
255                                 status = "okay";
256                         };
257
258                         /* 1st TX-Std UART - (D)UART */
259                         duart: serial@80074000 {
260                                 pinctrl-names = "default";
261                                 pinctrl-0 = <&duart_4pins_a>;
262                                 status = "okay";
263                         };
264
265                         /* 2nd TX-Std UART - (A)UART1  */
266                         auart1: serial@8006c000 {
267                                 pinctrl-names = "default";
268                                 pinctrl-0 = <&auart1_pins_a>;
269                                 status = "okay";
270                         };
271
272                         /* 3th TX-Std UART - (A)UART3  */
273                         auart3: serial@80070000 {
274                                 pinctrl-names = "default";
275                                 pinctrl-0 = <&auart3_pins_a>;
276                                 status = "okay";
277                         };
278
279                         usbphy0: usbphy@8007c000 {
280                                 status = "okay";
281                         };
282
283                         usbphy1: usbphy@8007e000 {
284                                 status = "okay";
285                         };
286
287                         keypad@53f94000 {
288                                 status = "okay";
289                                 /* sample keymap */
290                                 /* row/col 0,1 are mapped to KPP row/col 6,7 */
291                                 linux,keymap = <
292                                         0x06060074      /* row 6, col 6, KEY_POWER */
293                                         0x06070052      /* row 6, col 7, KEY_KP0 */
294                                         0x0602004f      /* row 6, col 2, KEY_KP1 */
295                                         0x06030050      /* row 6, col 3, KEY_KP2 */
296                                         0x07060051      /* row 7, col 6, KEY_KP3 */
297                                         0x0707004b      /* row 7, col 7, KEY_KP4 */
298                                         0x0702004c      /* row 7, col 2, KEY_KP5 */
299                                         0x0703004d      /* row 7, col 3, KEY_KP6 */
300                                         0x02060047      /* row 2, col 6, KEY_KP7 */
301                                         0x02070048      /* row 2, col 7, KEY_KP8 */
302                                         0x02020049      /* row 2, col 2, KEY_KP9 */
303                                  >;
304                         };
305
306                 };
307         };
308
309         ahb@80080000 {
310                 usb0: usb@80080000 {
311                         vbus-supply = <&reg_usb0_vbus>;
312                         pinctrl-names = "default";
313                         pinctrl-0 = <&usbphy0_pins_c>;
314                         disable-over-current;
315                         dr_mode = "host";
316                         status = "okay";
317                 };
318
319 /* OTG port - host mode */
320                 usb1: usb@80090000 {
321                         vbus-supply = <&reg_usb1_vbus>;
322                         pinctrl-names = "default";
323                         pinctrl-0 = <&usbphy1_pins_b>;
324                         disable-over-current;
325                         dr_mode = "host";
326                         status = "okay";
327                 };
328
329                 mac0: ethernet@800f0000 {
330                         phy-mode = "rmii";
331                         pinctrl-names = "default", "gpio_mode";
332                         pinctrl-0 = <&mac0_pins_a>;
333                         pinctrl-1 = <&mac0_pins_gpio>;
334                         status = "okay";
335                 };
336         };
337
338         regulators {
339                 compatible = "simple-bus";
340
341                 reg_usb0_vbus: usb0_vbus {
342                         compatible = "regulator-fixed";
343                         regulator-name = "usb0_vbus";
344                         regulator-min-microvolt = <5000000>;
345                         regulator-max-microvolt = <5000000>;
346                         gpio = <&gpio3 27 0>;
347                         enable-active-high;
348                 };
349
350                 reg_usb1_vbus: usb1_vbus {
351                         compatible = "regulator-fixed";
352                         regulator-name = "usb1_vbus";
353                         regulator-min-microvolt = <5000000>;
354                         regulator-max-microvolt = <5000000>;
355                         gpio = <&gpio0 18 0>;
356                         enable-active-high;
357                 };
358
359                 reg_2p5v: 2p5v {
360                         compatible = "regulator-fixed";
361                         regulator-name = "2P5V";
362                         regulator-min-microvolt = <2500000>;
363                         regulator-max-microvolt = <2500000>;
364                         regulator-always-on;
365                 };
366
367                 reg_3p3v: 3p3v {
368                         compatible = "regulator-fixed";
369                         regulator-name = "3P3V";
370                         regulator-min-microvolt = <3300000>;
371                         regulator-max-microvolt = <3300000>;
372                         regulator-always-on;
373                 };
374         };
375
376         gpio-switch {
377                 compatible = "gpio-switches", "simple-bus";
378                 #address-cells = <1>;
379                 #size-cells = <0>;
380
381                 edt_ft5x06_reset: gpio-switch@0 {
382                         compatible = "linux,gpio-switch";
383                         gpio = <&gpio2 6 1>;
384                         label = "EDT-FT5x06 RESET";
385                 };
386
387                 edt_ft5x06_wake: gpio-switch@1 {
388                         compatible = "linux,gpio-switch";
389                         gpio = <&gpio4 9 0>;
390                         label = "EDT-FT5x06 WAKE";
391                         init-state = <1>;
392                 };
393
394                 edt_ft5x06_irq: gpio-switch@2 {
395                         compatible = "linux,gpio-switch";
396                         gpio = <&gpio2 5 0>;
397                         label = "EDT-FT5x06 IRQ";
398                         init-state = <1>;
399                 };
400         };
401
402         leds {
403                 compatible = "gpio-leds";
404
405                 user {
406                         label = "Heartbeat";
407                         gpios = <&gpio4 10 0>;
408                         linux,default-trigger = "heartbeat";
409                         init-state = <0>;
410                 };
411         };
412
413         backlight {
414                 compatible = "pwm-backlight";
415                 pwms = <&pwm 0 5000000>;
416                 brightness-levels = <0 4 8 16 32 64 128 255>;
417                 default-brightness-level = <6>;
418         };
419 };