Merge branch 'async-scsi-resume' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.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                 linux,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 /* Internal I2C */
52 &i2c2 {
53         pinctrl-names = "default";
54         pinctrl-0 = <&pinctrl_i2c2>;
55         clock-frequency = <100000>;
56         status = "okay";
57
58         /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
59         eeprom: dm2016@51 {
60                 compatible = "sdmc,dm2016";
61                 reg = <0x51>;
62         };
63 };
64
65 /* External I2C via HDMI */
66 &i2c3 {
67         pinctrl-names = "default";
68         pinctrl-0 = <&pinctrl_i2c3>;
69         clock-frequency = <100000>;
70         status = "okay";
71 };
72
73 &iomuxc {
74         pinctrl-names = "default";
75         pinctrl-0 = <&pinctrl_hog>;
76
77         imx6q-gk802 {
78                 pinctrl_hog: hoggrp {
79                         fsl,pins = <
80                                 /* Recovery button, active-low */
81                                 MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x100b1
82                                 /* RTL8192CU enable GPIO, active-low */
83                                 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
84                         >;
85                 };
86
87                 pinctrl_i2c2: i2c2grp {
88                         fsl,pins = <
89                                 MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
90                                 MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
91                         >;
92                 };
93
94                 pinctrl_i2c3: i2c3grp {
95                         fsl,pins = <
96                                 MX6QDL_PAD_GPIO_5__I2C3_SCL             0x4001b8b1
97                                 MX6QDL_PAD_GPIO_16__I2C3_SDA            0x4001b8b1
98                         >;
99                 };
100
101                 pinctrl_uart4: uart4grp {
102                         fsl,pins = <
103                                 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
104                                 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
105                         >;
106                 };
107
108                 pinctrl_usdhc3: usdhc3grp {
109                         fsl,pins = <
110                                 MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
111                                 MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
112                                 MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
113                                 MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
114                                 MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
115                                 MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
116                         >;
117                 };
118
119                 pinctrl_usdhc4: usdhc4grp {
120                         fsl,pins = <
121                                 MX6QDL_PAD_SD4_CMD__SD4_CMD             0x17059
122                                 MX6QDL_PAD_SD4_CLK__SD4_CLK             0x10059
123                                 MX6QDL_PAD_SD4_DAT0__SD4_DATA0          0x17059
124                                 MX6QDL_PAD_SD4_DAT1__SD4_DATA1          0x17059
125                                 MX6QDL_PAD_SD4_DAT2__SD4_DATA2          0x17059
126                                 MX6QDL_PAD_SD4_DAT3__SD4_DATA3          0x17059
127                         >;
128                 };
129         };
130 };
131
132 &uart2 {
133         status = "okay";
134 };
135
136 &uart4 {
137         pinctrl-names = "default";
138         pinctrl-0 = <&pinctrl_uart4>;
139         status = "okay";
140 };
141
142 /* External USB-A port (USBOTG) */
143 &usbotg {
144         disable-over-current;
145         status = "okay";
146 };
147
148 /* Internal USB port (USBH1), connected to RTL8192CU */
149 &usbh1 {
150         disable-over-current;
151         status = "okay";
152 };
153
154 /* External microSD */
155 &usdhc3 {
156         pinctrl-names = "default";
157         pinctrl-0 = <&pinctrl_usdhc3>;
158         bus-width = <4>;
159         cd-gpios = <&gpio6 11 0>;
160         vmmc-supply = <&reg_3p3v>;
161         status = "okay";
162 };
163
164 /* Internal microSD */
165 &usdhc4 {
166         pinctrl-names = "default";
167         pinctrl-0 = <&pinctrl_usdhc4>;
168         bus-width = <4>;
169         vmmc-supply = <&reg_3p3v>;
170         status = "okay";
171 };