Merge branch 'master' of git://git.denx.de/u-boot
[oweals/u-boot.git] / arch / arm / dts / imx6sx-softing-vining-2000.dts
1 /*
2  * Copyright (C) 2016 Christoph Fritz <chf.fritz@googlemail.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 /dts-v1/;
10
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/input.h>
13 #include "imx6sx.dtsi"
14
15 / {
16         model = "Softing VIN|ING 2000";
17         compatible = "samtec,imx6sx-vining-2000", "fsl,imx6sx";
18
19         aliases {
20                 mmc0 = &usdhc4;
21                 mmc1 = &usdhc2;
22         };
23
24         chosen {
25                 stdout-path = &uart1;
26         };
27
28         memory@80000000 {
29                 device_type = "memory";
30                 reg = <0x80000000 0x40000000>;
31         };
32
33         reg_usb_otg1_vbus: regulator-usb_otg1_vbus {
34                 compatible = "regulator-fixed";
35                 regulator-name = "usb_otg1_vbus";
36                 pinctrl-names = "default";
37                 pinctrl-0 = <&pinctrl_usb_otg1>;
38                 regulator-min-microvolt = <5000000>;
39                 regulator-max-microvolt = <5000000>;
40                 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
41                 enable-active-high;
42         };
43
44         reg_peri_3v3: regulator-peri_3v3 {
45                 compatible = "regulator-fixed";
46                 regulator-name = "peri_3v3";
47                 regulator-min-microvolt = <3300000>;
48                 regulator-max-microvolt = <3300000>;
49         };
50
51         pwmleds {
52                 compatible = "pwm-leds";
53
54                 red {
55                         label = "red";
56                         max-brightness = <255>;
57                         pwms = <&pwm6 0 50000>;
58                 };
59
60                 green {
61                         label = "green";
62                         max-brightness = <255>;
63                         pwms = <&pwm2 0 50000>;
64                 };
65
66                 blue {
67                         label = "blue";
68                         max-brightness = <255>;
69                         pwms = <&pwm1 0 50000>;
70                 };
71         };
72 };
73
74 &adc1 {
75         vref-supply = <&reg_peri_3v3>;
76         status = "okay";
77 };
78
79 &cpu0 {
80         /*
81          * This board has a shared rail of reg_arm and reg_soc (supplied by
82          * sw1a_reg) which is modeled below, but still this module behaves
83          * unstable without higher voltages. Hence, set higher voltages here.
84          */
85         operating-points = <
86                 /* kHz    uV */
87                 996000  1250000
88                 792000  1175000
89                 396000  1175000
90                 198000  1175000
91                 >;
92         fsl,soc-operating-points = <
93                 /* ARM kHz  SOC uV */
94                 996000  1250000
95                 792000  1175000
96                 396000  1175000
97                 198000  1175000
98         >;
99 };
100
101 &ecspi4 {
102         pinctrl-names = "default";
103         pinctrl-0 = <&pinctrl_ecspi4>;
104         cs-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
105         status = "okay";
106 };
107
108 &fec1 {
109         pinctrl-names = "default";
110         pinctrl-0 = <&pinctrl_enet1>;
111         phy-supply = <&reg_peri_3v3>;
112         phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
113         phy-reset-duration = <5>;
114         phy-mode = "rmii";
115         phy-handle = <&ethphy0>;
116         status = "okay";
117
118         mdio {
119                 #address-cells = <1>;
120                 #size-cells = <0>;
121
122                 ethphy0: ethernet0-phy@0 {
123                         reg = <0>;
124                         max-speed = <100>;
125                         interrupt-parent = <&gpio2>;
126                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
127                 };
128         };
129 };
130
131 &fec2 {
132         pinctrl-names = "default";
133         pinctrl-0 = <&pinctrl_enet2>;
134         phy-supply = <&reg_peri_3v3>;
135         phy-reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
136         phy-reset-duration = <5>;
137         phy-mode = "rmii";
138         phy-handle = <&ethphy1>;
139         status = "okay";
140
141         mdio {
142                 #address-cells = <1>;
143                 #size-cells = <0>;
144
145                 ethphy1: ethernet1-phy@0 {
146                         reg = <0>;
147                         max-speed = <100>;
148                         interrupt-parent = <&gpio2>;
149                         interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
150                 };
151         };
152 };
153
154 &flexcan1 {
155         pinctrl-names = "default";
156         pinctrl-0 = <&pinctrl_flexcan1>;
157         status = "okay";
158 };
159
160 &flexcan2 {
161         pinctrl-names = "default";
162         pinctrl-0 = <&pinctrl_flexcan2>;
163         status = "okay";
164 };
165
166 &i2c1 {
167         clock-frequency = <100000>;
168         pinctrl-names = "default";
169         pinctrl-0 = <&pinctrl_i2c1>;
170         status = "okay";
171
172         proximity: sx9500@28 {
173                 compatible = "semtech,sx9500";
174                 reg = <0x28>;
175                 pinctrl-names = "default";
176                 pinctrl-0 = <&pinctrl_sx9500>;
177                 interrupt-parent = <&gpio2>;
178                 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
179                 reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
180         };
181
182         pmic: pfuze100@8 {
183                 compatible = "fsl,pfuze200";
184                 reg = <0x08>;
185
186                 regulators {
187                         sw1a_reg: sw1ab {
188                                 regulator-min-microvolt = <300000>;
189                                 regulator-max-microvolt = <1875000>;
190                                 regulator-boot-on;
191                                 regulator-always-on;
192                                 regulator-ramp-delay = <6250>;
193                         };
194
195                         sw2_reg: sw2 {
196                                 regulator-min-microvolt = <800000>;
197                                 regulator-max-microvolt = <3300000>;
198                                 regulator-boot-on;
199                                 regulator-always-on;
200                         };
201
202                         sw3a_reg: sw3a {
203                                 regulator-min-microvolt = <400000>;
204                                 regulator-max-microvolt = <1975000>;
205                                 regulator-boot-on;
206                                 regulator-always-on;
207                         };
208
209                         sw3b_reg: sw3b {
210                                 regulator-min-microvolt = <400000>;
211                                 regulator-max-microvolt = <1975000>;
212                                 regulator-boot-on;
213                                 regulator-always-on;
214                         };
215
216                         snvs_reg: vsnvs {
217                                 regulator-min-microvolt = <1000000>;
218                                 regulator-max-microvolt = <3000000>;
219                                 regulator-boot-on;
220                                 regulator-always-on;
221                         };
222
223                         vref_reg: vrefddr {
224                                 regulator-boot-on;
225                                 regulator-always-on;
226                         };
227
228                         vgen1_reg: vgen1 {
229                                 regulator-min-microvolt = <800000>;
230                                 regulator-max-microvolt = <1550000>;
231                                 regulator-always-on;
232                         };
233
234                         vgen2_reg: vgen2 {
235                                 regulator-min-microvolt = <800000>;
236                                 regulator-max-microvolt = <1550000>;
237                         };
238
239                         vgen3_reg: vgen3 {
240                                 regulator-min-microvolt = <1800000>;
241                                 regulator-max-microvolt = <3300000>;
242                                 regulator-always-on;
243                         };
244
245                         vgen4_reg: vgen4 {
246                                 regulator-min-microvolt = <1800000>;
247                                 regulator-max-microvolt = <3300000>;
248                                 regulator-always-on;
249                         };
250
251                         vgen5_reg: vgen5 {
252                                 regulator-min-microvolt = <1800000>;
253                                 regulator-max-microvolt = <3300000>;
254                                 regulator-always-on;
255                         };
256
257                         vgen6_reg: vgen6 {
258                                 regulator-min-microvolt = <1800000>;
259                                 regulator-max-microvolt = <3300000>;
260                                 regulator-always-on;
261                         };
262                 };
263         };
264 };
265
266 &i2c3 {
267         clock-frequency = <100000>;
268         pinctrl-names = "default";
269         pinctrl-0 = <&pinctrl_i2c3>;
270         status = "okay";
271 };
272
273 &reg_pcie {
274         regulator-always-on;
275 };
276
277 &pcie {
278         pinctrl-names = "default";
279         pinctrl-0 = <&pinctrl_pcie>;
280         reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>;
281         status = "okay";
282 };
283
284 &iomuxc {
285         pinctrl-names = "default";
286         pinctrl-0 = <&pinctrl_gpios>;
287
288         pinctrl_ecspi4: ecspi4grp {
289                 fsl,pins = <
290                         MX6SX_PAD_SD3_CLK__ECSPI4_SCLK          0x130b1
291                         MX6SX_PAD_SD3_DATA3__ECSPI4_MISO        0x130b1
292                         MX6SX_PAD_SD3_CMD__ECSPI4_MOSI          0x130b1
293                         MX6SX_PAD_SD3_DATA2__GPIO7_IO_4         0x30b0
294                 >;
295         };
296
297         pinctrl_enet1: enet1grp {
298                 fsl,pins = <
299                         MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0x30c1
300                         MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0x30c1
301                         MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xa0f9
302                         MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xa0f9
303                         MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN    0x30c1
304                         MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN    0xa0f9
305                         MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4000a038
306                         /* LAN8720 PHY Reset */
307                         MX6SX_PAD_RGMII1_TD3__GPIO5_IO_9        0x10b0
308                         /* MDIO */
309                         MX6SX_PAD_ENET1_MDC__ENET1_MDC          0xa0f9
310                         MX6SX_PAD_ENET1_MDIO__ENET1_MDIO        0xa0f9
311                         /* IRQ from PHY */
312                         MX6SX_PAD_KEY_ROW2__GPIO2_IO_17         0x10b0
313                 >;
314         };
315
316         pinctrl_enet2: enet2grp {
317                 fsl,pins = <
318                         MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0   0x1b0b0
319                         MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1   0x1b0b0
320                         MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0   0x1b0b0
321                         MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1   0x1b0b0
322                         MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN    0x1b0b0
323                         MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN    0x1b0b0
324                         MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4000a038
325                         /* LAN8720 PHY Reset */
326                         MX6SX_PAD_RGMII2_TD3__GPIO5_IO_21       0x10b0
327                         /* MDIO */
328                         MX6SX_PAD_ENET1_COL__ENET2_MDC          0xa0f9
329                         MX6SX_PAD_ENET1_CRS__ENET2_MDIO         0xa0f9
330                         /* IRQ from PHY */
331                         MX6SX_PAD_KEY_ROW4__GPIO2_IO_19         0x10b0
332                 >;
333         };
334
335         pinctrl_flexcan1: flexcan1grp {
336                 fsl,pins = <
337                         MX6SX_PAD_QSPI1B_DQS__CAN1_TX           0x1b0b0
338                         MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX         0x1b0b0
339                 >;
340         };
341
342         pinctrl_flexcan2: flexcan2grp {
343                 fsl,pins = <
344                         MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX         0x1b0b0
345                         MX6SX_PAD_QSPI1A_DQS__CAN2_TX           0x1b0b0
346                 >;
347         };
348
349         pinctrl_gpios: gpiosgrp {
350                 fsl,pins = <
351                         /* reset external uC */
352                         MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19     0x10b0
353                         /* IRQ from external uC */
354                         MX6SX_PAD_KEY_ROW0__GPIO2_IO_15         0x10b0
355                         /* overcurrent detection */
356                         MX6SX_PAD_GPIO1_IO08__GPIO1_IO_8        0x10b0
357                 >;
358         };
359
360         pinctrl_i2c1: i2c1grp {
361                 fsl,pins = <
362                         MX6SX_PAD_GPIO1_IO01__I2C1_SDA          0x4001b8b1
363                         MX6SX_PAD_GPIO1_IO00__I2C1_SCL          0x4001b8b1
364                 >;
365         };
366
367         pinctrl_i2c3: i2c3grp {
368                 fsl,pins = <
369                         MX6SX_PAD_NAND_ALE__I2C3_SDA            0x4001b8b1
370                         MX6SX_PAD_NAND_CLE__I2C3_SCL            0x4001b8b1
371                 >;
372         };
373
374         pinctrl_pcie: pciegrp {
375                 fsl,pins = <
376                         MX6SX_PAD_NAND_DATA02__GPIO4_IO_6       0x10b0
377                 >;
378         };
379
380         pinctrl_pwm1: pwm1grp-1 {
381                 fsl,pins = <
382                         /* blue LED */
383                         MX6SX_PAD_RGMII2_RD3__PWM1_OUT          0x1b0b1
384                 >;
385         };
386
387         pinctrl_pwm2: pwm2grp-1 {
388                 fsl,pins = <
389                         /* green LED */
390                         MX6SX_PAD_RGMII2_RD2__PWM2_OUT          0x1b0b1
391                 >;
392         };
393
394         pinctrl_pwm6: pwm6grp-1 {
395                 fsl,pins = <
396                         /* red LED */
397                         MX6SX_PAD_RGMII2_TD2__PWM6_OUT          0x1b0b1
398                 >;
399         };
400
401         pinctrl_sx9500: sx9500grp {
402                 fsl,pins = <
403                         /* Reset */
404                         MX6SX_PAD_KEY_COL0__GPIO2_IO_10         0x838
405                         /* IRQ */
406                         MX6SX_PAD_KEY_ROW1__GPIO2_IO_16         0x70e0
407                 >;
408         };
409
410         pinctrl_uart1: uart1grp {
411                 fsl,pins = <
412                         MX6SX_PAD_GPIO1_IO04__UART1_TX          0x1b0b1
413                         MX6SX_PAD_GPIO1_IO05__UART1_RX          0x1b0b1
414                 >;
415         };
416
417         pinctrl_uart2: uart2grp {
418                 fsl,pins = <
419                         MX6SX_PAD_GPIO1_IO06__UART2_TX          0x1b0b1
420                         MX6SX_PAD_GPIO1_IO07__UART2_RX          0x1b0b1
421                 >;
422         };
423
424         pinctrl_usb_otg1: usbotg1grp {
425                 fsl,pins = <
426                         MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9        0x10b0
427                 >;
428         };
429
430         pinctrl_usb_otg1_id: usbotg1idgrp {
431                 fsl,pins = <
432                         MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID    0x17059
433                 >;
434         };
435
436         pinctrl_usdhc2_50mhz: usdhc2grp-50mhz {
437                 fsl,pins = <
438                         MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x10059
439                         MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x17059
440                         MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x17059
441                         MX6SX_PAD_SD2_DATA1__USDHC2_DATA1       0x17059
442                         MX6SX_PAD_SD2_DATA2__USDHC2_DATA2       0x17059
443                         MX6SX_PAD_SD2_DATA3__USDHC2_DATA3       0x17059
444                         MX6SX_PAD_LCD1_VSYNC__GPIO3_IO_28       0x1b000
445                         MX6SX_PAD_LCD1_HSYNC__GPIO3_IO_26       0x10b0
446                 >;
447         };
448
449         pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
450                 fsl,pins = <
451                         MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x100b9
452                         MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x170b9
453                         MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x170b9
454                         MX6SX_PAD_SD2_DATA1__USDHC2_DATA1       0x170b9
455                         MX6SX_PAD_SD2_DATA2__USDHC2_DATA2       0x170b9
456                         MX6SX_PAD_SD2_DATA3__USDHC2_DATA3       0x170b9
457                 >;
458         };
459
460         pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
461                 fsl,pins = <
462                         MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x100f9
463                         MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x170f9
464                         MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x170f9
465                         MX6SX_PAD_SD2_DATA1__USDHC2_DATA1       0x170f9
466                         MX6SX_PAD_SD2_DATA2__USDHC2_DATA2       0x170f9
467                         MX6SX_PAD_SD2_DATA3__USDHC2_DATA3       0x170f9
468                 >;
469         };
470
471         pinctrl_usdhc4_50mhz: usdhc4grp-50mhz {
472                 fsl,pins = <
473                         MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x10059
474                         MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x17059
475                         MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x17059
476                         MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x17059
477                         MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x17059
478                         MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x17059
479                         MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x17059
480                         MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x17059
481                         MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x17059
482                         MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x17059
483                         MX6SX_PAD_SD4_RESET_B__USDHC4_RESET_B   0x17068
484                 >;
485         };
486
487         pinctrl_usdhc4_100mhz: usdhc4-100mhz {
488                 fsl,pins = <
489                         MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x100b9
490                         MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x170b9
491                         MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x170b9
492                         MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x170b9
493                         MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x170b9
494                         MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x170b9
495                         MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x170b9
496                         MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x170b9
497                         MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x170b9
498                         MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x170b9
499                 >;
500         };
501
502         pinctrl_usdhc4_200mhz: usdhc4-200mhz {
503                 fsl,pins = <
504                         MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x100f9
505                         MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x170f9
506                         MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x170f9
507                         MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x170f9
508                         MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x170f9
509                         MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x170f9
510                         MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x170f9
511                         MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x170f9
512                         MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x170f9
513                         MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x170f9
514                 >;
515         };
516 };
517
518 &pwm1 {
519         pinctrl-names = "default";
520         pinctrl-0 = <&pinctrl_pwm1>;
521         status = "okay";
522 };
523
524 &pwm2 {
525         pinctrl-names = "default";
526         pinctrl-0 = <&pinctrl_pwm2>;
527         status = "okay";
528 };
529
530 &pwm6 {
531         pinctrl-names = "default";
532         pinctrl-0 = <&pinctrl_pwm6>;
533         status = "okay";
534 };
535
536 &reg_arm {
537         vin-supply = <&sw1a_reg>;
538 };
539
540 &reg_soc {
541         vin-supply = <&sw1a_reg>;
542 };
543
544 &snvs_poweroff {
545         status = "okay";
546 };
547
548 &uart1 {
549         pinctrl-names = "default";
550         pinctrl-0 = <&pinctrl_uart1>;
551         status = "okay";
552 };
553
554 &uart2 {
555         pinctrl-names = "default";
556         pinctrl-0 = <&pinctrl_uart2>;
557         status = "okay";
558 };
559
560 &usbotg1 {
561         vbus-supply = <&reg_usb_otg1_vbus>;
562         pinctrl-names = "default";
563         pinctrl-0 = <&pinctrl_usb_otg1_id>;
564         status = "okay";
565 };
566
567 &usbotg2 {
568         dr_mode = "host";
569         status = "okay";
570 };
571
572 &usdhc2 {
573         pinctrl-names = "default", "state_100mhz", "state_200mhz";
574         pinctrl-0 = <&pinctrl_usdhc2_50mhz>;
575         pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
576         pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
577         cd-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>;
578         keep-power-in-suspend;
579         status = "okay";
580 };
581
582 &usdhc4 {
583         /* hs200-mode is currently unsupported because Vccq is on 3.1V, but
584          * not on necessary 1.8V.
585          */
586         pinctrl-names = "default", "state_100mhz", "state_200mhz";
587         pinctrl-0 = <&pinctrl_usdhc4_50mhz>;
588         pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
589         pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
590         bus-width = <8>;
591         keep-power-in-suspend;
592         non-removable;
593         cap-mmc-hw-reset;
594         status = "okay";
595 };