|  | // SPDX-License-Identifier: GPL-2.0-only | 
|  | // Copyright (C) 2013 Philipp Zabel | 
|  |  | 
|  | /dts-v1/; | 
|  | #include <dt-bindings/gpio/gpio.h> | 
|  | #include <dt-bindings/input/input.h> | 
|  | #include "imx6q.dtsi" | 
|  |  | 
|  | / { | 
|  | model = "Zealz GK802"; | 
|  | compatible = "zealz,imx6q-gk802", "fsl,imx6q"; | 
|  |  | 
|  | chosen { | 
|  | stdout-path = &uart4; | 
|  | }; | 
|  |  | 
|  | memory@10000000 { | 
|  | device_type = "memory"; | 
|  | reg = <0x10000000 0x40000000>; | 
|  | }; | 
|  |  | 
|  | reg_3p3v: regulator-3p3v { | 
|  | compatible = "regulator-fixed"; | 
|  | regulator-name = "3P3V"; | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | gpio-keys { | 
|  | compatible = "gpio-keys"; | 
|  |  | 
|  | recovery-button { | 
|  | label = "recovery"; | 
|  | gpios = <&gpio3 16 1>; | 
|  | linux,code = <KEY_RESTART>; | 
|  | wakeup-source; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &hdmi { | 
|  | ddc-i2c-bus = <&i2c3>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* Internal I2C */ | 
|  | &i2c2 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_i2c2>; | 
|  | clock-frequency = <100000>; | 
|  | status = "okay"; | 
|  |  | 
|  | /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */ | 
|  | eeprom: dm2016@51 { | 
|  | compatible = "sdmc,dm2016"; | 
|  | reg = <0x51>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | /* External I2C via HDMI */ | 
|  | &i2c3 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_i2c3>; | 
|  | clock-frequency = <100000>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &iomuxc { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_hog>; | 
|  |  | 
|  | imx6q-gk802 { | 
|  | pinctrl_hog: hoggrp { | 
|  | fsl,pins = < | 
|  | /* Recovery button, active-low */ | 
|  | MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x100b1 | 
|  | /* RTL8192CU enable GPIO, active-low */ | 
|  | MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_i2c2: i2c2grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1 | 
|  | MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_i2c3: i2c3grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_GPIO_5__I2C3_SCL		0x4001b8b1 | 
|  | MX6QDL_PAD_GPIO_16__I2C3_SDA		0x4001b8b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_uart4: uart4grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1 | 
|  | MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_usdhc3: usdhc3grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059 | 
|  | MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059 | 
|  | MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_usdhc4: usdhc4grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059 | 
|  | MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059 | 
|  | MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059 | 
|  | MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059 | 
|  | MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059 | 
|  | MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059 | 
|  | >; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &uart2 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &uart4 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_uart4>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* External USB-A port (USBOTG) */ | 
|  | &usbotg { | 
|  | disable-over-current; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* Internal USB port (USBH1), connected to RTL8192CU */ | 
|  | &usbh1 { | 
|  | disable-over-current; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* External microSD */ | 
|  | &usdhc3 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_usdhc3>; | 
|  | bus-width = <4>; | 
|  | cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; | 
|  | vmmc-supply = <®_3p3v>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | /* Internal microSD */ | 
|  | &usdhc4 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_usdhc4>; | 
|  | bus-width = <4>; | 
|  | vmmc-supply = <®_3p3v>; | 
|  | status = "okay"; | 
|  | }; |