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 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 }; 81 82 pinctrl_i2c2: i2c2grp { 83 fsl,pins = < 84 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 85 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 86 >; 87 }; 88 89 pinctrl_i2c3: i2c3grp { 90 fsl,pins = < 91 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 92 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 93 >; 94 }; 95 96 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 }; 102 103 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 }; 113 114 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 >; 123 }; 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 = <®_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 = <®_3p3v>; 164 status = "okay"; 165}; 166