Linux Audio

Check our new training course

Open-source upstreaming

Need help get the support for your hardware in upstream Linux?
Loading...
v5.14.15
  1/*
  2 * Copyright (C) 2013 Philipp Zabel
  3 *
  4 * This file is licensed under the terms of the GNU General Public License
  5 * version 2.  This program is licensed "as is" without any warranty of any
  6 * kind, whether express or implied.
  7 */
  8
  9/dts-v1/;
 10#include <dt-bindings/gpio/gpio.h>
 11#include <dt-bindings/input/input.h>
 12#include "imx6q.dtsi"
 13
 14/ {
 15	model = "Zealz GK802";
 16	compatible = "zealz,imx6q-gk802", "fsl,imx6q";
 17
 18	chosen {
 19		stdout-path = &uart4;
 20	};
 21
 22	memory@10000000 {
 23		device_type = "memory";
 24		reg = <0x10000000 0x40000000>;
 25	};
 26
 27	regulators {
 28		compatible = "simple-bus";
 29		#address-cells = <1>;
 30		#size-cells = <0>;
 31
 32		reg_3p3v: regulator@0 {
 33			compatible = "regulator-fixed";
 34			reg = <0>;
 35			regulator-name = "3P3V";
 36			regulator-min-microvolt = <3300000>;
 37			regulator-max-microvolt = <3300000>;
 38			regulator-always-on;
 39		};
 40	};
 41
 42	gpio-keys {
 43		compatible = "gpio-keys";
 44
 45		recovery-button {
 46			label = "recovery";
 47			gpios = <&gpio3 16 1>;
 48			linux,code = <KEY_RESTART>;
 49			wakeup-source;
 50		};
 51	};
 52};
 53
 54&hdmi {
 55	ddc-i2c-bus = <&i2c3>;
 56	status = "okay";
 57};
 58
 59/* Internal I2C */
 60&i2c2 {
 61	pinctrl-names = "default";
 62	pinctrl-0 = <&pinctrl_i2c2>;
 63	clock-frequency = <100000>;
 64	status = "okay";
 65
 66	/* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
 67	eeprom: dm2016@51 {
 68		compatible = "sdmc,dm2016";
 69		reg = <0x51>;
 70	};
 71};
 72
 73/* External I2C via HDMI */
 74&i2c3 {
 75	pinctrl-names = "default";
 76	pinctrl-0 = <&pinctrl_i2c3>;
 77	clock-frequency = <100000>;
 78	status = "okay";
 79};
 80
 81&iomuxc {
 82	pinctrl-names = "default";
 83	pinctrl-0 = <&pinctrl_hog>;
 84
 85	imx6q-gk802 {
 86		pinctrl_hog: hoggrp {
 87			fsl,pins = <
 88				/* Recovery button, active-low */
 89				MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x100b1
 90				/* RTL8192CU enable GPIO, active-low */
 91				MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
 92			>;
 93		};
 94
 95		pinctrl_i2c2: i2c2grp {
 96			fsl,pins = <
 97				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
 98				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
 99			>;
100		};
101
102		pinctrl_i2c3: i2c3grp {
103			fsl,pins = <
104				MX6QDL_PAD_GPIO_5__I2C3_SCL		0x4001b8b1
105				MX6QDL_PAD_GPIO_16__I2C3_SDA		0x4001b8b1
106			>;
107		};
108
109		pinctrl_uart4: uart4grp {
110			fsl,pins = <
111				MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1
112				MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1
113			>;
114		};
115
116		pinctrl_usdhc3: usdhc3grp {
117			fsl,pins = <
118				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
119				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
120				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
121				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
122				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
123				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
124			>;
125		};
126
127		pinctrl_usdhc4: usdhc4grp {
128			fsl,pins = <
129				MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
130				MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
131				MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
132				MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
133				MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
134				MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
135			>;
136		};
137	};
138};
139
140&uart2 {
141	status = "okay";
142};
143
144&uart4 {
145	pinctrl-names = "default";
146	pinctrl-0 = <&pinctrl_uart4>;
147	status = "okay";
148};
149
150/* External USB-A port (USBOTG) */
151&usbotg {
152	disable-over-current;
153	status = "okay";
154};
155
156/* Internal USB port (USBH1), connected to RTL8192CU */
157&usbh1 {
158	disable-over-current;
159	status = "okay";
160};
161
162/* External microSD */
163&usdhc3 {
164	pinctrl-names = "default";
165	pinctrl-0 = <&pinctrl_usdhc3>;
166	bus-width = <4>;
167	cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
168	vmmc-supply = <&reg_3p3v>;
169	status = "okay";
170};
171
172/* Internal microSD */
173&usdhc4 {
174	pinctrl-names = "default";
175	pinctrl-0 = <&pinctrl_usdhc4>;
176	bus-width = <4>;
177	vmmc-supply = <&reg_3p3v>;
178	status = "okay";
179};
v6.2
  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 = <&reg_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 = <&reg_3p3v>;
173	status = "okay";
174};