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