blob: e0d29b07fbb1ff72d62f611709c1cdb5c10d263b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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
Tom Rini844493d2025-01-26 16:17:47 -060073 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 };
Tom Rini53633a82024-02-29 12:33:36 -050081
Tom Rini844493d2025-01-26 16:17:47 -060082 pinctrl_i2c2: i2c2grp {
83 fsl,pins = <
84 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
85 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
86 >;
87 };
Tom Rini53633a82024-02-29 12:33:36 -050088
Tom Rini844493d2025-01-26 16:17:47 -060089 pinctrl_i2c3: i2c3grp {
90 fsl,pins = <
91 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
92 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
93 >;
94 };
Tom Rini53633a82024-02-29 12:33:36 -050095
Tom Rini844493d2025-01-26 16:17:47 -060096 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 };
Tom Rini53633a82024-02-29 12:33:36 -0500102
Tom Rini844493d2025-01-26 16:17:47 -0600103 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 };
Tom Rini53633a82024-02-29 12:33:36 -0500113
Tom Rini844493d2025-01-26 16:17:47 -0600114 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 >;
Tom Rini53633a82024-02-29 12:33:36 -0500123 };
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};