162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci// Copyright (C) 2013 Philipp Zabel
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci/dts-v1/;
562306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
662306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
762306a36Sopenharmony_ci#include "imx6q.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	model = "Zealz GK802";
1162306a36Sopenharmony_ci	compatible = "zealz,imx6q-gk802", "fsl,imx6q";
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	chosen {
1462306a36Sopenharmony_ci		stdout-path = &uart4;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	memory@10000000 {
1862306a36Sopenharmony_ci		device_type = "memory";
1962306a36Sopenharmony_ci		reg = <0x10000000 0x40000000>;
2062306a36Sopenharmony_ci	};
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	reg_3p3v: regulator-3p3v {
2362306a36Sopenharmony_ci		compatible = "regulator-fixed";
2462306a36Sopenharmony_ci		regulator-name = "3P3V";
2562306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
2662306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
2762306a36Sopenharmony_ci		regulator-always-on;
2862306a36Sopenharmony_ci	};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	gpio-keys {
3162306a36Sopenharmony_ci		compatible = "gpio-keys";
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci		recovery-button {
3462306a36Sopenharmony_ci			label = "recovery";
3562306a36Sopenharmony_ci			gpios = <&gpio3 16 1>;
3662306a36Sopenharmony_ci			linux,code = <KEY_RESTART>;
3762306a36Sopenharmony_ci			wakeup-source;
3862306a36Sopenharmony_ci		};
3962306a36Sopenharmony_ci	};
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci&hdmi {
4362306a36Sopenharmony_ci	ddc-i2c-bus = <&i2c3>;
4462306a36Sopenharmony_ci	status = "okay";
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci/* Internal I2C */
4862306a36Sopenharmony_ci&i2c2 {
4962306a36Sopenharmony_ci	pinctrl-names = "default";
5062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c2>;
5162306a36Sopenharmony_ci	clock-frequency = <100000>;
5262306a36Sopenharmony_ci	status = "okay";
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	/* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
5562306a36Sopenharmony_ci	eeprom: dm2016@51 {
5662306a36Sopenharmony_ci		compatible = "sdmc,dm2016";
5762306a36Sopenharmony_ci		reg = <0x51>;
5862306a36Sopenharmony_ci	};
5962306a36Sopenharmony_ci};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci/* External I2C via HDMI */
6262306a36Sopenharmony_ci&i2c3 {
6362306a36Sopenharmony_ci	pinctrl-names = "default";
6462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c3>;
6562306a36Sopenharmony_ci	clock-frequency = <100000>;
6662306a36Sopenharmony_ci	status = "okay";
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci&iomuxc {
7062306a36Sopenharmony_ci	pinctrl-names = "default";
7162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_hog>;
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	imx6q-gk802 {
7462306a36Sopenharmony_ci		pinctrl_hog: hoggrp {
7562306a36Sopenharmony_ci			fsl,pins = <
7662306a36Sopenharmony_ci				/* Recovery button, active-low */
7762306a36Sopenharmony_ci				MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x100b1
7862306a36Sopenharmony_ci				/* RTL8192CU enable GPIO, active-low */
7962306a36Sopenharmony_ci				MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
8062306a36Sopenharmony_ci			>;
8162306a36Sopenharmony_ci		};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci		pinctrl_i2c2: i2c2grp {
8462306a36Sopenharmony_ci			fsl,pins = <
8562306a36Sopenharmony_ci				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
8662306a36Sopenharmony_ci				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
8762306a36Sopenharmony_ci			>;
8862306a36Sopenharmony_ci		};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci		pinctrl_i2c3: i2c3grp {
9162306a36Sopenharmony_ci			fsl,pins = <
9262306a36Sopenharmony_ci				MX6QDL_PAD_GPIO_5__I2C3_SCL		0x4001b8b1
9362306a36Sopenharmony_ci				MX6QDL_PAD_GPIO_16__I2C3_SDA		0x4001b8b1
9462306a36Sopenharmony_ci			>;
9562306a36Sopenharmony_ci		};
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci		pinctrl_uart4: uart4grp {
9862306a36Sopenharmony_ci			fsl,pins = <
9962306a36Sopenharmony_ci				MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1
10062306a36Sopenharmony_ci				MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1
10162306a36Sopenharmony_ci			>;
10262306a36Sopenharmony_ci		};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci		pinctrl_usdhc3: usdhc3grp {
10562306a36Sopenharmony_ci			fsl,pins = <
10662306a36Sopenharmony_ci				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
10762306a36Sopenharmony_ci				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
10862306a36Sopenharmony_ci				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
10962306a36Sopenharmony_ci				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
11062306a36Sopenharmony_ci				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
11162306a36Sopenharmony_ci				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
11262306a36Sopenharmony_ci			>;
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci		pinctrl_usdhc4: usdhc4grp {
11662306a36Sopenharmony_ci			fsl,pins = <
11762306a36Sopenharmony_ci				MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
11862306a36Sopenharmony_ci				MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
11962306a36Sopenharmony_ci				MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
12062306a36Sopenharmony_ci				MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
12162306a36Sopenharmony_ci				MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
12262306a36Sopenharmony_ci				MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
12362306a36Sopenharmony_ci			>;
12462306a36Sopenharmony_ci		};
12562306a36Sopenharmony_ci	};
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci&uart2 {
12962306a36Sopenharmony_ci	status = "okay";
13062306a36Sopenharmony_ci};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci&uart4 {
13362306a36Sopenharmony_ci	pinctrl-names = "default";
13462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart4>;
13562306a36Sopenharmony_ci	status = "okay";
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci/* External USB-A port (USBOTG) */
13962306a36Sopenharmony_ci&usbotg {
14062306a36Sopenharmony_ci	disable-over-current;
14162306a36Sopenharmony_ci	status = "okay";
14262306a36Sopenharmony_ci};
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci/* Internal USB port (USBH1), connected to RTL8192CU */
14562306a36Sopenharmony_ci&usbh1 {
14662306a36Sopenharmony_ci	disable-over-current;
14762306a36Sopenharmony_ci	status = "okay";
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci/* External microSD */
15162306a36Sopenharmony_ci&usdhc3 {
15262306a36Sopenharmony_ci	pinctrl-names = "default";
15362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc3>;
15462306a36Sopenharmony_ci	bus-width = <4>;
15562306a36Sopenharmony_ci	cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
15662306a36Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
15762306a36Sopenharmony_ci	status = "okay";
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci/* Internal microSD */
16162306a36Sopenharmony_ci&usdhc4 {
16262306a36Sopenharmony_ci	pinctrl-names = "default";
16362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc4>;
16462306a36Sopenharmony_ci	bus-width = <4>;
16562306a36Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
16662306a36Sopenharmony_ci	status = "okay";
16762306a36Sopenharmony_ci};
168