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