]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/imx7d-sdb.dts
next-20150925/battery
[karo-tx-linux.git] / arch / arm / boot / dts / imx7d-sdb.dts
1 /*
2  * Copyright (C) 2015 Freescale Semiconductor, Inc.
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License as
11  *     published by the Free Software Foundation; either version 2 of the
12  *     License, or (at your option) any later version.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  * Or, alternatively,
20  *
21  *  b) Permission is hereby granted, free of charge, to any person
22  *     obtaining a copy of this software and associated documentation
23  *     files (the "Software"), to deal in the Software without
24  *     restriction, including without limitation the rights to use,
25  *     copy, modify, merge, publish, distribute, sublicense, and/or
26  *     sell copies of the Software, and to permit persons to whom the
27  *     Software is furnished to do so, subject to the following
28  *     conditions:
29  *
30  *     The above copyright notice and this permission notice shall be
31  *     included in all copies or substantial portions of the Software.
32  *
33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40  *     OTHER DEALINGS IN THE SOFTWARE.
41  */
42
43 /dts-v1/;
44
45 #include <dt-bindings/input/input.h>
46 #include "imx7d.dtsi"
47
48 / {
49         model = "Freescale i.MX7 SabreSD Board";
50         compatible = "fsl,imx7d-sdb", "fsl,imx7d";
51
52         memory {
53                 reg = <0x80000000 0x80000000>;
54         };
55
56         regulators {
57                 compatible = "simple-bus";
58                 #address-cells = <1>;
59                 #size-cells = <0>;
60
61                 reg_usb_otg1_vbus: regulator@0 {
62                         compatible = "regulator-fixed";
63                         reg = <0>;
64                         regulator-name = "usb_otg1_vbus";
65                         regulator-min-microvolt = <5000000>;
66                         regulator-max-microvolt = <5000000>;
67                         gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
68                         enable-active-high;
69                 };
70
71                 reg_usb_otg2_vbus: regulator@1 {
72                         compatible = "regulator-fixed";
73                         reg = <1>;
74                         regulator-name = "usb_otg2_vbus";
75                         regulator-min-microvolt = <5000000>;
76                         regulator-max-microvolt = <5000000>;
77                         gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
78                         enable-active-high;
79                 };
80
81                 reg_can2_3v3: regulator@2 {
82                         compatible = "regulator-fixed";
83                         reg = <2>;
84                         regulator-name = "can2-3v3";
85                         regulator-min-microvolt = <3300000>;
86                         regulator-max-microvolt = <3300000>;
87                         gpio = <&gpio1 7 GPIO_ACTIVE_LOW>;
88                 };
89
90                 reg_vref_1v8: regulator@3 {
91                         compatible = "regulator-fixed";
92                         reg = <3>;
93                         regulator-name = "vref-1v8";
94                         regulator-min-microvolt = <1800000>;
95                         regulator-max-microvolt = <1800000>;
96                 };
97         };
98 };
99
100 &cpu0 {
101         arm-supply = <&sw1a_reg>;
102 };
103
104 &fec1 {
105         pinctrl-names = "default";
106         pinctrl-0 = <&pinctrl_enet1>;
107         assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
108                           <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
109         assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
110         assigned-clock-rates = <0>, <100000000>;
111         phy-mode = "rgmii";
112         phy-handle = <&ethphy0>;
113         fsl,magic-packet;
114         status = "okay";
115
116         mdio {
117                 #address-cells = <1>;
118                 #size-cells = <0>;
119
120                 ethphy0: ethernet-phy@0 {
121                         reg = <0>;
122                 };
123
124                 ethphy1: ethernet-phy@1 {
125                         reg = <1>;
126                 };
127         };
128 };
129
130 &fec2 {
131         pinctrl-names = "default";
132         pinctrl-0 = <&pinctrl_enet2>;
133         assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
134                           <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
135         assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
136         assigned-clock-rates = <0>, <100000000>;
137         phy-mode = "rgmii";
138         phy-handle = <&ethphy1>;
139         fsl,magic-packet;
140         status = "okay";
141 };
142
143 &i2c1 {
144         pinctrl-names = "default";
145         pinctrl-0 = <&pinctrl_i2c1>;
146         status = "okay";
147
148         pmic: pfuze3000@08 {
149                 compatible = "fsl,pfuze3000";
150                 reg = <0x08>;
151
152                 regulators {
153                         sw1a_reg: sw1a {
154                                 regulator-min-microvolt = <700000>;
155                                 regulator-max-microvolt = <1475000>;
156                                 regulator-boot-on;
157                                 regulator-always-on;
158                                 regulator-ramp-delay = <6250>;
159                         };
160
161                         /* use sw1c_reg to align with pfuze100/pfuze200 */
162                         sw1c_reg: sw1b {
163                                 regulator-min-microvolt = <700000>;
164                                 regulator-max-microvolt = <1475000>;
165                                 regulator-boot-on;
166                                 regulator-always-on;
167                                 regulator-ramp-delay = <6250>;
168                         };
169
170                         sw2_reg: sw2 {
171                                 regulator-min-microvolt = <1500000>;
172                                 regulator-max-microvolt = <1850000>;
173                                 regulator-boot-on;
174                                 regulator-always-on;
175                         };
176
177                         sw3a_reg: sw3 {
178                                 regulator-min-microvolt = <900000>;
179                                 regulator-max-microvolt = <1650000>;
180                                 regulator-boot-on;
181                                 regulator-always-on;
182                         };
183
184                         swbst_reg: swbst {
185                                 regulator-min-microvolt = <5000000>;
186                                 regulator-max-microvolt = <5150000>;
187                         };
188
189                         snvs_reg: vsnvs {
190                                 regulator-min-microvolt = <1000000>;
191                                 regulator-max-microvolt = <3000000>;
192                                 regulator-boot-on;
193                                 regulator-always-on;
194                         };
195
196                         vref_reg: vrefddr {
197                                 regulator-boot-on;
198                                 regulator-always-on;
199                         };
200
201                         vgen1_reg: vldo1 {
202                                 regulator-min-microvolt = <1800000>;
203                                 regulator-max-microvolt = <3300000>;
204                                 regulator-always-on;
205                         };
206
207                         vgen2_reg: vldo2 {
208                                 regulator-min-microvolt = <800000>;
209                                 regulator-max-microvolt = <1550000>;
210                         };
211
212                         vgen3_reg: vccsd {
213                                 regulator-min-microvolt = <2850000>;
214                                 regulator-max-microvolt = <3300000>;
215                                 regulator-always-on;
216                         };
217
218                         vgen4_reg: v33 {
219                                 regulator-min-microvolt = <2850000>;
220                                 regulator-max-microvolt = <3300000>;
221                                 regulator-always-on;
222                         };
223
224                         vgen5_reg: vldo3 {
225                                 regulator-min-microvolt = <1800000>;
226                                 regulator-max-microvolt = <3300000>;
227                                 regulator-always-on;
228                         };
229
230                         vgen6_reg: vldo4 {
231                                 regulator-min-microvolt = <1800000>;
232                                 regulator-max-microvolt = <3300000>;
233                                 regulator-always-on;
234                         };
235                 };
236         };
237 };
238
239 &i2c2 {
240         pinctrl-names = "default";
241         pinctrl-0 = <&pinctrl_i2c2>;
242         status = "okay";
243 };
244
245 &i2c3 {
246         pinctrl-names = "default";
247         pinctrl-0 = <&pinctrl_i2c3>;
248         status = "okay";
249 };
250
251 &i2c4 {
252         pinctrl-names = "default";
253         pinctrl-0 = <&pinctrl_i2c4>;
254         status = "okay";
255
256         codec: wm8960@1a {
257                 compatible = "wlf,wm8960";
258                 reg = <0x1a>;
259                 clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
260                 clock-names = "mclk";
261                 wlf,shared-lrclk;
262         };
263 };
264
265 &uart1 {
266         pinctrl-names = "default";
267         pinctrl-0 = <&pinctrl_uart1>;
268         assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
269         assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
270         status = "okay";
271 };
272
273 &usbotg1 {
274         vbus-supply = <&reg_usb_otg1_vbus>;
275         status = "okay";
276 };
277
278 &usbotg2 {
279         vbus-supply = <&reg_usb_otg2_vbus>;
280         dr_mode = "host";
281         status = "okay";
282 };
283
284 &usdhc1 {
285         pinctrl-names = "default";
286         pinctrl-0 = <&pinctrl_usdhc1>;
287         cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
288         wp-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
289         enable-sdio-wakeup;
290         keep-power-in-suspend;
291         status = "okay";
292 };
293
294 &usdhc3 {
295         pinctrl-names = "default", "state_100mhz", "state_200mhz";
296         pinctrl-0 = <&pinctrl_usdhc3>;
297         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
298         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
299         assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
300         assigned-clock-rates = <400000000>;
301         bus-width = <8>;
302         fsl,tuning-step = <2>;
303         non-removable;
304         status = "okay";
305 };
306
307 &iomuxc {
308         pinctrl-names = "default";
309         pinctrl-0 = <&pinctrl_hog>;
310
311         imx7d-sdb {
312                 pinctrl_enet1: enet1grp {
313                         fsl,pins = <
314                                 MX7D_PAD_GPIO1_IO10__ENET1_MDIO                 0x3
315                                 MX7D_PAD_GPIO1_IO11__ENET1_MDC                  0x3
316                                 MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x1
317                                 MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x1
318                                 MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x1
319                                 MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x1
320                                 MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x1
321                                 MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1
322                                 MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x1
323                                 MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x1
324                                 MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x1
325                                 MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x1
326                                 MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x1
327                                 MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
328                         >;
329                 };
330
331                 pinctrl_enet2: enet2grp {
332                         fsl,pins = <
333                                 MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC             0x1
334                                 MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0            0x1
335                                 MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1            0x1
336                                 MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2            0x1
337                                 MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3             0x1
338                                 MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL          0x1
339                                 MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC            0x1
340                                 MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0            0x1
341                                 MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1             0x1
342                                 MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2             0x1
343                                 MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3            0x1
344                                 MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL         0x1
345                         >;
346                 };
347
348                 pinctrl_hog: hoggrp {
349                         fsl,pins = <
350                                 MX7D_PAD_UART3_CTS_B__GPIO4_IO7         0x14
351                                 MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
352                         >;
353                 };
354
355                 pinctrl_i2c1: i2c1grp {
356                         fsl,pins = <
357                                 MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
358                                 MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
359                         >;
360                 };
361
362                 pinctrl_i2c2: i2c2grp {
363                         fsl,pins = <
364                                 MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
365                                 MX7D_PAD_I2C2_SCL__I2C2_SCL             0x4000007f
366                         >;
367                 };
368
369                 pinctrl_i2c3: i2c3grp {
370                         fsl,pins = <
371                                 MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
372                                 MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
373                         >;
374                 };
375
376                 pinctrl_i2c4: i2c4grp {
377                         fsl,pins = <
378                                 MX7D_PAD_SAI1_RX_BCLK__I2C4_SDA         0x4000007f
379                                 MX7D_PAD_SAI1_RX_SYNC__I2C4_SCL         0x4000007f
380                         >;
381                 };
382
383                 pinctrl_uart1: uart1grp {
384                         fsl,pins = <
385                                 MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
386                                 MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
387                         >;
388                 };
389
390                 pinctrl_uart5: uart5grp {
391                         fsl,pins = <
392                                 MX7D_PAD_SAI1_TX_BCLK__UART5_DCE_TX     0x79
393                                 MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX     0x79
394                                 MX7D_PAD_SAI1_TX_SYNC__UART5_DCE_CTS    0x79
395                                 MX7D_PAD_SAI1_TX_DATA__UART5_DCE_RTS    0x79
396                         >;
397                 };
398
399                 pinctrl_uart6: uart6grp {
400                         fsl,pins = <
401                                 MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX      0x79
402                                 MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX      0x79
403                                 MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS      0x79
404                                 MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS     0x79
405                         >;
406                 };
407
408                 pinctrl_usdhc1: usdhc1grp {
409                         fsl,pins = <
410                                 MX7D_PAD_SD1_CMD__SD1_CMD               0x59
411                                 MX7D_PAD_SD1_CLK__SD1_CLK               0x19
412                                 MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
413                                 MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
414                                 MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
415                                 MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
416                                 MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
417                                 MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
418                                 MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
419                         >;
420                 };
421
422                 pinctrl_usdhc2: usdhc2grp {
423                         fsl,pins = <
424                                 MX7D_PAD_SD2_CMD__SD2_CMD               0x59
425                                 MX7D_PAD_SD2_CLK__SD2_CLK               0x19
426                                 MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
427                                 MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
428                                 MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
429                                 MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
430                                 MX7D_PAD_ECSPI2_MOSI__GPIO4_IO21        0x59 /* WL_REG_ON */
431                         >;
432                 };
433
434                 pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
435                         fsl,pins = <
436                                 MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
437                                 MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
438                                 MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5a
439                                 MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5a
440                                 MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5a
441                                 MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5a
442                         >;
443                 };
444
445                 pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
446                         fsl,pins = <
447                                 MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
448                                 MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
449                                 MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5b
450                                 MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5b
451                                 MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5b
452                                 MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5b
453                         >;
454                 };
455
456
457                 pinctrl_usdhc3: usdhc3grp {
458                         fsl,pins = <
459                                 MX7D_PAD_SD3_CMD__SD3_CMD               0x59
460                                 MX7D_PAD_SD3_CLK__SD3_CLK               0x19
461                                 MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
462                                 MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
463                                 MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
464                                 MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
465                                 MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
466                                 MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
467                                 MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
468                                 MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
469                                 MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
470                         >;
471                 };
472
473                 pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
474                         fsl,pins = <
475                                 MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
476                                 MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
477                                 MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
478                                 MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
479                                 MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
480                                 MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
481                                 MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
482                                 MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
483                                 MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
484                                 MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
485                                 MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1a
486                         >;
487                 };
488
489                 pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
490                         fsl,pins = <
491                                 MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
492                                 MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
493                                 MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
494                                 MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
495                                 MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
496                                 MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
497                                 MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
498                                 MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
499                                 MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
500                                 MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
501                                 MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
502                         >;
503                 };
504
505         };
506 };