Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.2.
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * Copyright 2014 FEDEVEL, Inc.
  4 *
  5 * Author: Robert Nelson <robertcnelson@gmail.com>
  6 */
  7
  8#include <dt-bindings/gpio/gpio.h>
  9#include <dt-bindings/input/input.h>
 10
 11/ {
 12	chosen {
 13		stdout-path = &uart1;
 14	};
 15
 16	reg_3p3v: regulator-3p3v {
 17		compatible = "regulator-fixed";
 18		regulator-name = "3P3V";
 19		regulator-min-microvolt = <3300000>;
 20		regulator-max-microvolt = <3300000>;
 21		regulator-always-on;
 22	};
 23
 24	reg_usbh1_vbus: regulator-usbh1-vbus {
 25		compatible = "regulator-fixed";
 26		pinctrl-names = "default";
 27		regulator-name = "usbh1_vbus";
 28		regulator-min-microvolt = <5000000>;
 29		regulator-max-microvolt = <5000000>;
 30		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
 31		enable-active-high;
 32	};
 33
 34	reg_usb_otg_vbus: regulator-otg-vbus {
 35		compatible = "regulator-fixed";
 36		pinctrl-names = "default";
 37		regulator-name = "usb_otg_vbus";
 38		regulator-min-microvolt = <5000000>;
 39		regulator-max-microvolt = <5000000>;
 40		gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
 41		enable-active-high;
 42	};
 43
 44	leds {
 45		compatible = "gpio-leds";
 46		pinctrl-names = "default";
 47		pinctrl-0 = <&pinctrl_led>;
 48
 49		led0: led-usr {
 50			label = "usr";
 51			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
 52			default-state = "off";
 53			linux,default-trigger = "heartbeat";
 54		};
 55	};
 56
 57	sound {
 58		compatible = "fsl,imx6-rex-sgtl5000",
 59			     "fsl,imx-audio-sgtl5000";
 60		model = "imx6-rex-sgtl5000";
 61		ssi-controller = <&ssi1>;
 62		audio-codec = <&codec>;
 63		audio-routing =
 64			"MIC_IN", "Mic Jack",
 65			"Mic Jack", "Mic Bias",
 66			"Headphone Jack", "HP_OUT";
 67		mux-int-port = <1>;
 68		mux-ext-port = <3>;
 69	};
 70};
 71
 72&audmux {
 73	pinctrl-names = "default";
 74	pinctrl-0 = <&pinctrl_audmux>;
 75	status = "okay";
 76};
 77
 78&ecspi2 {
 79	cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
 80	pinctrl-names = "default";
 81	pinctrl-0 = <&pinctrl_ecspi2>;
 82	status = "okay";
 83};
 84
 85&ecspi3 {
 86	cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
 87	pinctrl-names = "default";
 88	pinctrl-0 = <&pinctrl_ecspi3>;
 89	status = "okay";
 90};
 91
 92&fec {
 93	pinctrl-names = "default";
 94	pinctrl-0 = <&pinctrl_enet>;
 95	phy-mode = "rgmii";
 96	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
 97	status = "okay";
 98};
 99
100&hdmi {
101	ddc-i2c-bus = <&i2c2>;
102	status = "okay";
103};
104
105&i2c1 {
106	clock-frequency = <100000>;
107	pinctrl-names = "default";
108	pinctrl-0 = <&pinctrl_i2c1>;
109	status = "okay";
110
111	codec: sgtl5000@a {
112		compatible = "fsl,sgtl5000";
113		reg = <0x0a>;
114		#sound-dai-cells = <0>;
115		clocks = <&clks IMX6QDL_CLK_CKO>;
116		VDDA-supply = <&reg_3p3v>;
117		VDDIO-supply = <&reg_3p3v>;
118	};
119};
120
121&i2c2 {
122	clock-frequency = <100000>;
123	pinctrl-names = "default";
124	pinctrl-0 = <&pinctrl_i2c2>;
125	status = "okay";
126
127	pca9535: gpio-expander@27 {
128		compatible = "nxp,pca9535";
129		reg = <0x27>;
130		gpio-controller;
131		#gpio-cells = <2>;
132		pinctrl-names = "default";
133		pinctrl-0 = <&pinctrl_pca9535>;
134		interrupt-parent = <&gpio6>;
135		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
136		interrupt-controller;
137		#interrupt-cells = <2>;
138	};
139
140	eeprom@57 {
141		compatible = "atmel,24c02";
142		reg = <0x57>;
143	};
144};
145
146&i2c3 {
147	clock-frequency = <100000>;
148	pinctrl-names = "default";
149	pinctrl-0 = <&pinctrl_i2c3>;
150	status = "okay";
151};
152
153&iomuxc {
154	pinctrl-names = "default";
155	pinctrl-0 = <&pinctrl_hog>;
156
157	pinctrl_hog: hoggrp {
158		fsl,pins = <
159			/* SGTL5000 sys_mclk */
160			MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x030b0
161		>;
162	};
163
164	pinctrl_audmux: audmuxgrp {
165		fsl,pins = <
166			MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
167			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
168			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
169			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
170		>;
171	};
172
173	pinctrl_ecspi2: ecspi2grp {
174		fsl,pins = <
175			MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO	0x100b1
176			MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI	0x100b1
177			MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK	0x100b1
178			/* CS */
179			MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26	0x000b1
180		>;
181	};
182
183	pinctrl_ecspi3: ecspi3grp {
184		fsl,pins = <
185			MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO	0x100b1
186			MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI	0x100b1
187			MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK	0x100b1
188			/* CS */
189			MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12	0x000b1
190		>;
191	};
192
193	pinctrl_enet: enetgrp {
194		fsl,pins = <
195			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
196			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
197			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
198			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
199			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
200			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
201			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
202			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
203			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
204			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
205			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
206			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
207			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
208			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
209			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
210			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
211			/* Phy reset */
212			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x000b0
213		>;
214	};
215
216	pinctrl_i2c1: i2c1grp {
217		fsl,pins = <
218			MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
219			MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
220		>;
221	};
222
223	pinctrl_i2c2: i2c2grp {
224		fsl,pins = <
225			MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
226			MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
227		>;
228	};
229
230	pinctrl_i2c3: i2c3grp {
231		fsl,pins = <
232			MX6QDL_PAD_EIM_D17__I2C3_SCL		0x4001b8b1
233			MX6QDL_PAD_EIM_D18__I2C3_SDA		0x4001b8b1
234		>;
235	};
236
237	pinctrl_led: ledgrp {
238		fsl,pins = <
239			/* user led */
240			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x80000000
241		>;
242	};
243
244	pinctrl_pca9535: pca9535grp {
245		fsl,pins = <
246			MX6QDL_PAD_NANDF_CS3__GPIO6_IO16	0x17059
247	   >;
248	};
249
250	pinctrl_uart1: uart1grp {
251		fsl,pins = <
252			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
253			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
254		>;
255	};
256
257	pinctrl_uart2: uart2grp {
258		fsl,pins = <
259			MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1
260			MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1
261		>;
262	};
263
264	pinctrl_usbh1: usbh1grp {
265		fsl,pins = <
266			/* power enable, high active */
267			MX6QDL_PAD_EIM_D31__GPIO3_IO31		0x10b0
268		>;
269	};
270
271	pinctrl_usbotg: usbotggrp {
272		fsl,pins = <
273			MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
274			MX6QDL_PAD_EIM_D21__USB_OTG_OC		0x1b0b0
275			/* power enable, high active */
276			MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x10b0
277		>;
278	};
279
280	pinctrl_usdhc2: usdhc2grp {
281		fsl,pins = <
282			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
283			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
284			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
285			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
286			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
287			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
288			/* CD */
289			MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x1b0b0
290			/* WP */
291			MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x1f0b0
292		>;
293	};
294
295	pinctrl_usdhc3: usdhc3grp {
296		fsl,pins = <
297			MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
298			MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
299			MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
300			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
301			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
302			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
303			/* CD */
304			MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x1b0b0
305			/* WP */
306			MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x1f0b0
307		>;
308	};
309};
310
311&ssi1 {
312	status = "okay";
313};
314
315&uart1 {
316	pinctrl-names = "default";
317	pinctrl-0 = <&pinctrl_uart1>;
318	status = "okay";
319};
320
321&uart2 {
322	pinctrl-names = "default";
323	pinctrl-0 = <&pinctrl_uart2>;
324	status = "okay";
325};
326
327&usbh1 {
328	vbus-supply = <&reg_usbh1_vbus>;
329	pinctrl-names = "default";
330	pinctrl-0 = <&pinctrl_usbh1>;
331	status = "okay";
332};
333
334&usbotg {
335	vbus-supply = <&reg_usb_otg_vbus>;
336	pinctrl-names = "default";
337	pinctrl-0 = <&pinctrl_usbotg>;
338	status = "okay";
339};
340
341&usdhc2 {
342	pinctrl-names = "default";
343	pinctrl-0 = <&pinctrl_usdhc2>;
344	bus-width = <4>;
345	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
346	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
347	status = "okay";
348};
349
350&usdhc3 {
351	pinctrl-names = "default";
352	pinctrl-0 = <&pinctrl_usdhc3>;
353	bus-width = <4>;
354	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
355	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
356	status = "okay";
357};