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 regulators { 23 compatible = "simple-bus"; 24 #address-cells = <1>; 25 #size-cells = <0>; 26 27 reg_3p3v: regulator@0 { 28 compatible = "regulator-fixed"; 29 reg = <0>; 30 regulator-name = "3P3V"; 31 regulator-min-microvolt = <3300000>; 32 regulator-max-microvolt = <3300000>; 33 regulator-always-on; 34 }; 35 }; 36 37 gpio-keys { 38 compatible = "gpio-keys"; 39 40 recovery-button { 41 label = "recovery"; 42 gpios = <&gpio3 16 1>; 43 linux,code = <KEY_RESTART>; 44 wakeup-source; 45 }; 46 }; 47}; 48 49&hdmi { 50 ddc-i2c-bus = <&i2c3>; 51 status = "okay"; 52}; 53 54/* Internal I2C */ 55&i2c2 { 56 pinctrl-names = "default"; 57 pinctrl-0 = <&pinctrl_i2c2>; 58 clock-frequency = <100000>; 59 status = "okay"; 60 61 /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */ 62 eeprom: dm2016@51 { 63 compatible = "sdmc,dm2016"; 64 reg = <0x51>; 65 }; 66}; 67 68/* External I2C via HDMI */ 69&i2c3 { 70 pinctrl-names = "default"; 71 pinctrl-0 = <&pinctrl_i2c3>; 72 clock-frequency = <100000>; 73 status = "okay"; 74}; 75 76&iomuxc { 77 pinctrl-names = "default"; 78 pinctrl-0 = <&pinctrl_hog>; 79 80 imx6q-gk802 { 81 pinctrl_hog: hoggrp { 82 fsl,pins = < 83 /* Recovery button, active-low */ 84 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x100b1 85 /* RTL8192CU enable GPIO, active-low */ 86 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 87 >; 88 }; 89 90 pinctrl_i2c2: i2c2grp { 91 fsl,pins = < 92 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 93 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 94 >; 95 }; 96 97 pinctrl_i2c3: i2c3grp { 98 fsl,pins = < 99 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 100 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 101 >; 102 }; 103 104 pinctrl_uart4: uart4grp { 105 fsl,pins = < 106 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 107 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 108 >; 109 }; 110 111 pinctrl_usdhc3: usdhc3grp { 112 fsl,pins = < 113 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 114 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 115 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 116 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 117 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 118 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 119 >; 120 }; 121 122 pinctrl_usdhc4: usdhc4grp { 123 fsl,pins = < 124 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059 125 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059 126 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059 127 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059 128 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059 129 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059 130 >; 131 }; 132 }; 133}; 134 135&uart2 { 136 status = "okay"; 137}; 138 139&uart4 { 140 pinctrl-names = "default"; 141 pinctrl-0 = <&pinctrl_uart4>; 142 status = "okay"; 143}; 144 145/* External USB-A port (USBOTG) */ 146&usbotg { 147 disable-over-current; 148 status = "okay"; 149}; 150 151/* Internal USB port (USBH1), connected to RTL8192CU */ 152&usbh1 { 153 disable-over-current; 154 status = "okay"; 155}; 156 157/* External microSD */ 158&usdhc3 { 159 pinctrl-names = "default"; 160 pinctrl-0 = <&pinctrl_usdhc3>; 161 bus-width = <4>; 162 cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 163 vmmc-supply = <®_3p3v>; 164 status = "okay"; 165}; 166 167/* Internal microSD */ 168&usdhc4 { 169 pinctrl-names = "default"; 170 pinctrl-0 = <&pinctrl_usdhc4>; 171 bus-width = <4>; 172 vmmc-supply = <®_3p3v>; 173 status = "okay"; 174}; 175