ARM: dts: imx6sx-sdb: Add PMIC support
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / imx6sx-sdb.dts
1 /*
2  * Copyright (C) 2014 Freescale Semiconductor, Inc.
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 = "Freescale i.MX6 SoloX SDB Board";
17         compatible = "fsl,imx6sx-sdb", "fsl,imx6sx";
18
19         chosen {
20                 stdout-path = &uart1;
21         };
22
23         memory {
24                 reg = <0x80000000 0x40000000>;
25         };
26
27         gpio-keys {
28                 compatible = "gpio-keys";
29                 pinctrl-names = "default";
30                 pinctrl-0 = <&pinctrl_gpio_keys>;
31
32                 volume-up {
33                         label = "Volume Up";
34                         gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
35                         linux,code = <KEY_VOLUMEUP>;
36                 };
37
38                 volume-down {
39                         label = "Volume Down";
40                         gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
41                         linux,code = <KEY_VOLUMEDOWN>;
42                 };
43         };
44
45         regulators {
46                 compatible = "simple-bus";
47                 #address-cells = <1>;
48                 #size-cells = <0>;
49
50                 vcc_sd3: regulator@0 {
51                         compatible = "regulator-fixed";
52                         reg = <0>;
53                         pinctrl-names = "default";
54                         pinctrl-0 = <&pinctrl_vcc_sd3>;
55                         regulator-name = "VCC_SD3";
56                         regulator-min-microvolt = <3000000>;
57                         regulator-max-microvolt = <3000000>;
58                         gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
59                         enable-active-high;
60                 };
61
62                 reg_usb_otg1_vbus: regulator@1 {
63                         compatible = "regulator-fixed";
64                         reg = <1>;
65                         pinctrl-names = "default";
66                         pinctrl-0 = <&pinctrl_usb_otg1>;
67                         regulator-name = "usb_otg1_vbus";
68                         regulator-min-microvolt = <5000000>;
69                         regulator-max-microvolt = <5000000>;
70                         gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
71                         enable-active-high;
72                 };
73
74                 reg_usb_otg2_vbus: regulator@2 {
75                         compatible = "regulator-fixed";
76                         reg = <2>;
77                         pinctrl-names = "default";
78                         pinctrl-0 = <&pinctrl_usb_otg2>;
79                         regulator-name = "usb_otg2_vbus";
80                         regulator-min-microvolt = <5000000>;
81                         regulator-max-microvolt = <5000000>;
82                         gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
83                         enable-active-high;
84                 };
85         };
86 };
87
88 &fec1 {
89         pinctrl-names = "default";
90         pinctrl-0 = <&pinctrl_enet1>;
91         phy-mode = "rgmii";
92         status = "okay";
93 };
94
95 &i2c1 {
96         clock-frequency = <100000>;
97         pinctrl-names = "default";
98         pinctrl-0 = <&pinctrl_i2c1>;
99         status = "okay";
100
101         pmic: pfuze100@08 {
102                 compatible = "fsl,pfuze100";
103                 reg = <0x08>;
104
105                 regulators {
106                         sw1a_reg: sw1ab {
107                                 regulator-min-microvolt = <300000>;
108                                 regulator-max-microvolt = <1875000>;
109                                 regulator-boot-on;
110                                 regulator-always-on;
111                                 regulator-ramp-delay = <6250>;
112                         };
113
114                         sw1c_reg: sw1c {
115                                 regulator-min-microvolt = <300000>;
116                                 regulator-max-microvolt = <1875000>;
117                                 regulator-boot-on;
118                                 regulator-always-on;
119                                 regulator-ramp-delay = <6250>;
120                         };
121
122                         sw2_reg: sw2 {
123                                 regulator-min-microvolt = <800000>;
124                                 regulator-max-microvolt = <3300000>;
125                                 regulator-boot-on;
126                                 regulator-always-on;
127                         };
128
129                         sw3a_reg: sw3a {
130                                 regulator-min-microvolt = <400000>;
131                                 regulator-max-microvolt = <1975000>;
132                                 regulator-boot-on;
133                                 regulator-always-on;
134                         };
135
136                         sw3b_reg: sw3b {
137                                 regulator-min-microvolt = <400000>;
138                                 regulator-max-microvolt = <1975000>;
139                                 regulator-boot-on;
140                                 regulator-always-on;
141                         };
142
143                         sw4_reg: sw4 {
144                                 regulator-min-microvolt = <800000>;
145                                 regulator-max-microvolt = <3300000>;
146                         };
147
148                         swbst_reg: swbst {
149                                 regulator-min-microvolt = <5000000>;
150                                 regulator-max-microvolt = <5150000>;
151                         };
152
153                         snvs_reg: vsnvs {
154                                 regulator-min-microvolt = <1000000>;
155                                 regulator-max-microvolt = <3000000>;
156                                 regulator-boot-on;
157                                 regulator-always-on;
158                         };
159
160                         vref_reg: vrefddr {
161                                 regulator-boot-on;
162                                 regulator-always-on;
163                         };
164
165                         vgen1_reg: vgen1 {
166                                 regulator-min-microvolt = <800000>;
167                                 regulator-max-microvolt = <1550000>;
168                                 regulator-always-on;
169                         };
170
171                         vgen2_reg: vgen2 {
172                                 regulator-min-microvolt = <800000>;
173                                 regulator-max-microvolt = <1550000>;
174                         };
175
176                         vgen3_reg: vgen3 {
177                                 regulator-min-microvolt = <1800000>;
178                                 regulator-max-microvolt = <3300000>;
179                                 regulator-always-on;
180                         };
181
182                         vgen4_reg: vgen4 {
183                                 regulator-min-microvolt = <1800000>;
184                                 regulator-max-microvolt = <3300000>;
185                                 regulator-always-on;
186                         };
187
188                         vgen5_reg: vgen5 {
189                                 regulator-min-microvolt = <1800000>;
190                                 regulator-max-microvolt = <3300000>;
191                                 regulator-always-on;
192                         };
193
194                         vgen6_reg: vgen6 {
195                                 regulator-min-microvolt = <1800000>;
196                                 regulator-max-microvolt = <3300000>;
197                                 regulator-always-on;
198                         };
199                 };
200         };
201 };
202
203 &uart1 {
204         pinctrl-names = "default";
205         pinctrl-0 = <&pinctrl_uart1>;
206         status = "okay";
207 };
208
209 &uart5 { /* for bluetooth */
210         pinctrl-names = "default";
211         pinctrl-0 = <&pinctrl_uart5>;
212         fsl,uart-has-rtscts;
213         status = "okay";
214 };
215
216 &usbotg1 {
217         vbus-supply = <&reg_usb_otg1_vbus>;
218         pinctrl-names = "default";
219         pinctrl-0 = <&pinctrl_usb_otg1_id>;
220         status = "okay";
221 };
222
223 &usbotg2 {
224         vbus-supply = <&reg_usb_otg2_vbus>;
225         dr_mode = "host";
226         status = "okay";
227 };
228
229 &usdhc2 {
230         pinctrl-names = "default";
231         pinctrl-0 = <&pinctrl_usdhc2>;
232         non-removable;
233         no-1-8-v;
234         keep-power-in-suspend;
235         enable-sdio-wakeup;
236         status = "okay";
237 };
238
239 &usdhc3 {
240         pinctrl-names = "default", "state_100mhz", "state_200mhz";
241         pinctrl-0 = <&pinctrl_usdhc3>;
242         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
243         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
244         bus-width = <8>;
245         cd-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
246         wp-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
247         keep-power-in-suspend;
248         enable-sdio-wakeup;
249         vmmc-supply = <&vcc_sd3>;
250         status = "okay";
251 };
252
253 &usdhc4 {
254         pinctrl-names = "default";
255         pinctrl-0 = <&pinctrl_usdhc4>;
256         cd-gpios = <&gpio6 21 GPIO_ACTIVE_HIGH>;
257         wp-gpios = <&gpio6 20 GPIO_ACTIVE_HIGH>;
258         status = "okay";
259 };
260
261 &iomuxc {
262         imx6x-sdb {
263                 pinctrl_enet1: enet1grp {
264                         fsl,pins = <
265                                 MX6SX_PAD_ENET1_MDIO__ENET1_MDIO        0xa0b1
266                                 MX6SX_PAD_ENET1_MDC__ENET1_MDC          0xa0b1
267                                 MX6SX_PAD_RGMII1_TXC__ENET1_RGMII_TXC   0xa0b1
268                                 MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xa0b1
269                                 MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xa0b1
270                                 MX6SX_PAD_RGMII1_TD2__ENET1_TX_DATA_2   0xa0b1
271                                 MX6SX_PAD_RGMII1_TD3__ENET1_TX_DATA_3   0xa0b1
272                                 MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN    0xa0b1
273                                 MX6SX_PAD_RGMII1_RXC__ENET1_RX_CLK      0x3081
274                                 MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0x3081
275                                 MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0x3081
276                                 MX6SX_PAD_RGMII1_RD2__ENET1_RX_DATA_2   0x3081
277                                 MX6SX_PAD_RGMII1_RD3__ENET1_RX_DATA_3   0x3081
278                                 MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN    0x3081
279                         >;
280                 };
281
282                 pinctrl_gpio_keys: gpio_keysgrp {
283                         fsl,pins = <
284                                 MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059
285                                 MX6SX_PAD_CSI_DATA05__GPIO1_IO_19 0x17059
286                         >;
287                 };
288
289                 pinctrl_i2c1: i2c1grp {
290                         fsl,pins = <
291                                 MX6SX_PAD_GPIO1_IO01__I2C1_SDA          0x4001b8b1
292                                 MX6SX_PAD_GPIO1_IO00__I2C1_SCL          0x4001b8b1
293                         >;
294                 };
295
296                 pinctrl_vcc_sd3: vccsd3grp {
297                         fsl,pins = <
298                                 MX6SX_PAD_KEY_COL1__GPIO2_IO_11         0x17059
299                         >;
300                 };
301
302                 pinctrl_uart1: uart1grp {
303                         fsl,pins = <
304                                 MX6SX_PAD_GPIO1_IO04__UART1_TX          0x1b0b1
305                                 MX6SX_PAD_GPIO1_IO05__UART1_RX          0x1b0b1
306                         >;
307                 };
308
309                 pinctrl_uart5: uart5grp {
310                         fsl,pins = <
311                                 MX6SX_PAD_KEY_ROW3__UART5_RX            0x1b0b1
312                                 MX6SX_PAD_KEY_COL3__UART5_TX            0x1b0b1
313                                 MX6SX_PAD_KEY_ROW2__UART5_CTS_B         0x1b0b1
314                                 MX6SX_PAD_KEY_COL2__UART5_RTS_B         0x1b0b1
315                         >;
316                 };
317
318                 pinctrl_usb_otg1: usbotg1grp {
319                         fsl,pins = <
320                                 MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9        0x10b0
321                         >;
322                 };
323
324                 pinctrl_usb_otg1_id: usbotg1idgrp {
325                         fsl,pins = <
326                                 MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID    0x17059
327                         >;
328                 };
329
330                 pinctrl_usb_otg2: usbot2ggrp {
331                         fsl,pins = <
332                                 MX6SX_PAD_GPIO1_IO12__GPIO1_IO_12       0x10b0
333                         >;
334                 };
335
336                 pinctrl_usdhc2: usdhc2grp {
337                         fsl,pins = <
338                                 MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x17059
339                                 MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x10059
340                                 MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x17059
341                                 MX6SX_PAD_SD2_DATA1__USDHC2_DATA1       0x17059
342                                 MX6SX_PAD_SD2_DATA2__USDHC2_DATA2       0x17059
343                                 MX6SX_PAD_SD2_DATA3__USDHC2_DATA3       0x17059
344                         >;
345                 };
346
347                 pinctrl_usdhc3: usdhc3grp {
348                         fsl,pins = <
349                                 MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x17059
350                                 MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x10059
351                                 MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x17059
352                                 MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x17059
353                                 MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x17059
354                                 MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x17059
355                                 MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x17059
356                                 MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x17059
357                                 MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x17059
358                                 MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x17059
359                                 MX6SX_PAD_KEY_COL0__GPIO2_IO_10         0x17059 /* CD */
360                                 MX6SX_PAD_KEY_ROW0__GPIO2_IO_15         0x17059 /* WP */
361                         >;
362                 };
363
364                 pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
365                         fsl,pins = <
366                                 MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x170b9
367                                 MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x100b9
368                                 MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x170b9
369                                 MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x170b9
370                                 MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x170b9
371                                 MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x170b9
372                                 MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x170b9
373                                 MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x170b9
374                                 MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x170b9
375                                 MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x170b9
376                         >;
377                 };
378
379                 pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
380                         fsl,pins = <
381                                 MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x170f9
382                                 MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x100f9
383                                 MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x170f9
384                                 MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x170f9
385                                 MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x170f9
386                                 MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x170f9
387                                 MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x170f9
388                                 MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x170f9
389                                 MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x170f9
390                                 MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x170f9
391                         >;
392                 };
393
394                 pinctrl_usdhc4: usdhc4grp {
395                         fsl,pins = <
396                                 MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x17059
397                                 MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x10059
398                                 MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x17059
399                                 MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x17059
400                                 MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x17059
401                                 MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x17059
402                                 MX6SX_PAD_SD4_DATA7__GPIO6_IO_21        0x17059 /* CD */
403                                 MX6SX_PAD_SD4_DATA6__GPIO6_IO_20        0x17059 /* WP */
404                         >;
405                 };
406         };
407 };