Merge branch 'next' into for-linus
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / imx6q-gk802.dts
1 /*
2  * Copyright (C) 2013 Philipp Zabel
3  *
4  * This file is licensed under the terms of the GNU General Public License
5  * version 2.  This program is licensed "as is" without any warranty of any
6  * kind, whether express or implied.
7  */
8
9 /dts-v1/;
10 #include "imx6q.dtsi"
11
12 / {
13         model = "Zealz GK802";
14         compatible = "zealz,imx6q-gk802", "fsl,imx6q";
15
16         chosen {
17                 stdout-path = &uart4;
18         };
19
20         memory {
21                 reg = <0x10000000 0x40000000>;
22         };
23
24         regulators {
25                 compatible = "simple-bus";
26                 #address-cells = <1>;
27                 #size-cells = <0>;
28
29                 reg_3p3v: regulator@0 {
30                         compatible = "regulator-fixed";
31                         reg = <0>;
32                         regulator-name = "3P3V";
33                         regulator-min-microvolt = <3300000>;
34                         regulator-max-microvolt = <3300000>;
35                         regulator-always-on;
36                 };
37         };
38
39         gpio-keys {
40                 compatible = "gpio-keys";
41
42                 recovery-button {
43                         label = "recovery";
44                         gpios = <&gpio3 16 1>;
45                         linux,code = <0x198>; /* KEY_RESTART */
46                         gpio-key,wakeup;
47                 };
48         };
49 };
50
51 &hdmi {
52         ddc-i2c-bus = <&i2c3>;
53         status = "okay";
54 };
55
56 /* Internal I2C */
57 &i2c2 {
58         pinctrl-names = "default";
59         pinctrl-0 = <&pinctrl_i2c2>;
60         clock-frequency = <100000>;
61         status = "okay";
62
63         /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
64         eeprom: dm2016@51 {
65                 compatible = "sdmc,dm2016";
66                 reg = <0x51>;
67         };
68 };
69
70 /* External I2C via HDMI */
71 &i2c3 {
72         pinctrl-names = "default";
73         pinctrl-0 = <&pinctrl_i2c3>;
74         clock-frequency = <100000>;
75         status = "okay";
76 };
77
78 &iomuxc {
79         pinctrl-names = "default";
80         pinctrl-0 = <&pinctrl_hog>;
81
82         imx6q-gk802 {
83                 pinctrl_hog: hoggrp {
84                         fsl,pins = <
85                                 /* Recovery button, active-low */
86                                 MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x100b1
87                                 /* RTL8192CU enable GPIO, active-low */
88                                 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
89                         >;
90                 };
91
92                 pinctrl_i2c2: i2c2grp {
93                         fsl,pins = <
94                                 MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
95                                 MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
96                         >;
97                 };
98
99                 pinctrl_i2c3: i2c3grp {
100                         fsl,pins = <
101                                 MX6QDL_PAD_GPIO_5__I2C3_SCL             0x4001b8b1
102                                 MX6QDL_PAD_GPIO_16__I2C3_SDA            0x4001b8b1
103                         >;
104                 };
105
106                 pinctrl_uart4: uart4grp {
107                         fsl,pins = <
108                                 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
109                                 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
110                         >;
111                 };
112
113                 pinctrl_usdhc3: usdhc3grp {
114                         fsl,pins = <
115                                 MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
116                                 MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
117                                 MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
118                                 MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
119                                 MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
120                                 MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
121                         >;
122                 };
123
124                 pinctrl_usdhc4: usdhc4grp {
125                         fsl,pins = <
126                                 MX6QDL_PAD_SD4_CMD__SD4_CMD             0x17059
127                                 MX6QDL_PAD_SD4_CLK__SD4_CLK             0x10059
128                                 MX6QDL_PAD_SD4_DAT0__SD4_DATA0          0x17059
129                                 MX6QDL_PAD_SD4_DAT1__SD4_DATA1          0x17059
130                                 MX6QDL_PAD_SD4_DAT2__SD4_DATA2          0x17059
131                                 MX6QDL_PAD_SD4_DAT3__SD4_DATA3          0x17059
132                         >;
133                 };
134         };
135 };
136
137 &uart2 {
138         status = "okay";
139 };
140
141 &uart4 {
142         pinctrl-names = "default";
143         pinctrl-0 = <&pinctrl_uart4>;
144         status = "okay";
145 };
146
147 /* External USB-A port (USBOTG) */
148 &usbotg {
149         disable-over-current;
150         status = "okay";
151 };
152
153 /* Internal USB port (USBH1), connected to RTL8192CU */
154 &usbh1 {
155         disable-over-current;
156         status = "okay";
157 };
158
159 /* External microSD */
160 &usdhc3 {
161         pinctrl-names = "default";
162         pinctrl-0 = <&pinctrl_usdhc3>;
163         bus-width = <4>;
164         cd-gpios = <&gpio6 11 0>;
165         vmmc-supply = <&reg_3p3v>;
166         status = "okay";
167 };
168
169 /* Internal microSD */
170 &usdhc4 {
171         pinctrl-names = "default";
172         pinctrl-0 = <&pinctrl_usdhc4>;
173         bus-width = <4>;
174         vmmc-supply = <&reg_3p3v>;
175         status = "okay";
176 };