0001 // SPDX-License-Identifier: GPL-2.0-only
0002 // Copyright (C) 2013 Philipp Zabel
0003
0004 /dts-v1/;
0005 #include <dt-bindings/gpio/gpio.h>
0006 #include <dt-bindings/input/input.h>
0007 #include "imx6q.dtsi"
0008
0009 / {
0010 model = "Zealz GK802";
0011 compatible = "zealz,imx6q-gk802", "fsl,imx6q";
0012
0013 chosen {
0014 stdout-path = &uart4;
0015 };
0016
0017 memory@10000000 {
0018 device_type = "memory";
0019 reg = <0x10000000 0x40000000>;
0020 };
0021
0022 regulators {
0023 compatible = "simple-bus";
0024 #address-cells = <1>;
0025 #size-cells = <0>;
0026
0027 reg_3p3v: regulator@0 {
0028 compatible = "regulator-fixed";
0029 reg = <0>;
0030 regulator-name = "3P3V";
0031 regulator-min-microvolt = <3300000>;
0032 regulator-max-microvolt = <3300000>;
0033 regulator-always-on;
0034 };
0035 };
0036
0037 gpio-keys {
0038 compatible = "gpio-keys";
0039
0040 recovery-button {
0041 label = "recovery";
0042 gpios = <&gpio3 16 1>;
0043 linux,code = <KEY_RESTART>;
0044 wakeup-source;
0045 };
0046 };
0047 };
0048
0049 &hdmi {
0050 ddc-i2c-bus = <&i2c3>;
0051 status = "okay";
0052 };
0053
0054 /* Internal I2C */
0055 &i2c2 {
0056 pinctrl-names = "default";
0057 pinctrl-0 = <&pinctrl_i2c2>;
0058 clock-frequency = <100000>;
0059 status = "okay";
0060
0061 /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
0062 eeprom: dm2016@51 {
0063 compatible = "sdmc,dm2016";
0064 reg = <0x51>;
0065 };
0066 };
0067
0068 /* External I2C via HDMI */
0069 &i2c3 {
0070 pinctrl-names = "default";
0071 pinctrl-0 = <&pinctrl_i2c3>;
0072 clock-frequency = <100000>;
0073 status = "okay";
0074 };
0075
0076 &iomuxc {
0077 pinctrl-names = "default";
0078 pinctrl-0 = <&pinctrl_hog>;
0079
0080 imx6q-gk802 {
0081 pinctrl_hog: hoggrp {
0082 fsl,pins = <
0083 /* Recovery button, active-low */
0084 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x100b1
0085 /* RTL8192CU enable GPIO, active-low */
0086 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
0087 >;
0088 };
0089
0090 pinctrl_i2c2: i2c2grp {
0091 fsl,pins = <
0092 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
0093 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
0094 >;
0095 };
0096
0097 pinctrl_i2c3: i2c3grp {
0098 fsl,pins = <
0099 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
0100 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
0101 >;
0102 };
0103
0104 pinctrl_uart4: uart4grp {
0105 fsl,pins = <
0106 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
0107 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
0108 >;
0109 };
0110
0111 pinctrl_usdhc3: usdhc3grp {
0112 fsl,pins = <
0113 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
0114 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
0115 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
0116 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
0117 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
0118 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
0119 >;
0120 };
0121
0122 pinctrl_usdhc4: usdhc4grp {
0123 fsl,pins = <
0124 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
0125 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
0126 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
0127 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
0128 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
0129 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
0130 >;
0131 };
0132 };
0133 };
0134
0135 &uart2 {
0136 status = "okay";
0137 };
0138
0139 &uart4 {
0140 pinctrl-names = "default";
0141 pinctrl-0 = <&pinctrl_uart4>;
0142 status = "okay";
0143 };
0144
0145 /* External USB-A port (USBOTG) */
0146 &usbotg {
0147 disable-over-current;
0148 status = "okay";
0149 };
0150
0151 /* Internal USB port (USBH1), connected to RTL8192CU */
0152 &usbh1 {
0153 disable-over-current;
0154 status = "okay";
0155 };
0156
0157 /* External microSD */
0158 &usdhc3 {
0159 pinctrl-names = "default";
0160 pinctrl-0 = <&pinctrl_usdhc3>;
0161 bus-width = <4>;
0162 cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
0163 vmmc-supply = <®_3p3v>;
0164 status = "okay";
0165 };
0166
0167 /* Internal microSD */
0168 &usdhc4 {
0169 pinctrl-names = "default";
0170 pinctrl-0 = <&pinctrl_usdhc4>;
0171 bus-width = <4>;
0172 vmmc-supply = <®_3p3v>;
0173 status = "okay";
0174 };