imx6q-gk802.dts revision 271143
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};
177