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 imx6q-gk802 { 74 pinctrl_hog: hoggrp { 75 fsl,pins = < 76 /* Recovery button, active-low */ 77 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x100b1 78 /* RTL8192CU enable GPIO, active-low */ 79 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 80 >; 81 }; 82 83 pinctrl_i2c2: i2c2grp { 84 fsl,pins = < 85 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 86 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 87 >; 88 }; 89 90 pinctrl_i2c3: i2c3grp { 91 fsl,pins = < 92 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 93 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 94 >; 95 }; 96 97 pinctrl_uart4: uart4grp { 98 fsl,pins = < 99 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 100 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 101 >; 102 }; 103 104 pinctrl_usdhc3: usdhc3grp { 105 fsl,pins = < 106 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 107 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 108 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 109 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 110 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 111 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 112 >; 113 }; 114 115 pinctrl_usdhc4: usdhc4grp { 116 fsl,pins = < 117 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 118 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 119 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 120 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 121 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 122 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 123 >; 124 }; 125 }; 126}; 127 128&uart2 { 129 status = "okay"; 130}; 131 132&uart4 { 133 pinctrl-names = "default"; 134 pinctrl-0 = <&pinctrl_uart4>; 135 status = "okay"; 136}; 137 138/* External USB-A port (USBOTG) */ 139&usbotg { 140 disable-over-current; 141 status = "okay"; 142}; 143 144/* Internal USB port (USBH1), connected to RTL8192CU */ 145&usbh1 { 146 disable-over-current; 147 status = "okay"; 148}; 149 150/* External microSD */ 151&usdhc3 { 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pinctrl_usdhc3>; 154 bus-width = <4>; 155 cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 156 vmmc-supply = <®_3p3v>; 157 status = "okay"; 158}; 159 160/* Internal microSD */ 161&usdhc4 { 162 pinctrl-names = "default"; 163 pinctrl-0 = <&pinctrl_usdhc4>; 164 bus-width = <4>; 165 vmmc-supply = <®_3p3v>; 166 status = "okay"; 167}; 168