1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
4 */
5
6#include <dt-bindings/sound/fsl-imx-audmux.h>
7
8/ {
9	chosen {
10		stdout-path = &uart4;
11	};
12
13	sound_1v8: regulator-sound-1v8 {
14		compatible = "regulator-fixed";
15		regulator-name = "i2s-audio-1v8";
16		regulator-min-microvolt = <1800000>;
17		regulator-max-microvolt = <1800000>;
18	};
19
20	sound_3v3: regulator-sound-3v3 {
21		compatible = "regulator-fixed";
22		regulator-name = "i2s-audio-3v3";
23		regulator-min-microvolt = <3300000>;
24		regulator-max-microvolt = <3300000>;
25	};
26
27	tlv320_mclk: oscillator {
28		compatible = "fixed-clock";
29		#clock-cells = <0>;
30		clock-frequency = <19200000>;
31		clock-output-names = "tlv320-mclk";
32	};
33
34	sound {
35		compatible = "simple-audio-card";
36		simple-audio-card,name = "OnboardTLV320AIC3007";
37		simple-audio-card,format = "i2s";
38		simple-audio-card,bitclock-master = <&dailink_master>;
39		simple-audio-card,frame-master = <&dailink_master>;
40		simple-audio-card,widgets =
41			"Microphone", "Mic Jack",
42			"Line", "Line In",
43			"Line", "Line Out",
44			"Speaker", "Speaker",
45			"Headphone", "Headphone Jack";
46		simple-audio-card,routing =
47			"Line Out", "LLOUT",
48			"Line Out", "RLOUT",
49			"Speaker", "SPOP",
50			"Speaker", "SPOM",
51			"Headphone Jack", "HPLOUT",
52			"Headphone Jack", "HPROUT",
53			"MIC3L", "Mic Jack",
54			"MIC3R", "Mic Jack",
55			"Mic Jack", "Mic Bias",
56			"LINE1L", "Line In",
57			"LINE1R", "Line In";
58
59		simple-audio-card,cpu {
60			sound-dai = <&ssi2>;
61		};
62
63		dailink_master: simple-audio-card,codec {
64			sound-dai = <&codec>;
65			clocks = <&tlv320_mclk>;
66		};
67	};
68
69};
70
71&audmux {
72	status = "okay";
73
74	mux-ssi2 {
75		fsl,audmux-port = <1>;
76		fsl,port-config = <
77			(IMX_AUDMUX_V2_PTCR_SYN |
78			IMX_AUDMUX_V2_PTCR_TFSDIR |
79			IMX_AUDMUX_V2_PTCR_TFSEL(4) |
80			IMX_AUDMUX_V2_PTCR_TCLKDIR |
81			IMX_AUDMUX_V2_PTCR_TCSEL(4))
82			IMX_AUDMUX_V2_PDCR_RXDSEL(4)
83		>;
84	};
85
86	mux-pins5 {
87		fsl,audmux-port = <4>;
88		fsl,port-config = <
89			IMX_AUDMUX_V2_PTCR_SYN
90			IMX_AUDMUX_V2_PDCR_RXDSEL(1)
91		>;
92	};
93};
94
95&can1 {
96	status = "okay";
97};
98
99&fec {
100	status = "okay";
101};
102
103&hdmi {
104	status = "okay";
105};
106
107&i2c2 {
108	status = "okay";
109
110	codec: tlv320@18 {
111		compatible = "ti,tlv320aic3007";
112		#sound-dai-cells = <0>;
113		reg = <0x18>;
114		ai3x-micbias-vg = <2>;
115
116		AVDD-supply = <&sound_3v3>;
117		IOVDD-supply = <&sound_3v3>;
118		DRVDD-supply = <&sound_3v3>;
119		DVDD-supply = <&sound_1v8>;
120	};
121
122	stmpe@41 {
123		compatible = "st,stmpe811";
124		reg = <0x41>;
125	};
126
127	rtc@51 {
128		compatible = "epson,rtc8564";
129		reg = <0x51>;
130	};
131
132	adc@64 {
133		compatible = "maxim,max1037";
134		reg = <0x64>;
135	};
136};
137
138&i2c3 {
139	status = "okay";
140};
141
142&pcie {
143	status = "okay";
144};
145
146&ssi2 {
147	status = "okay";
148};
149
150&uart3 {
151	status = "okay";
152};
153
154&uart4 {
155	status = "okay";
156};
157
158&usbh1 {
159	status = "okay";
160};
161
162&usbotg {
163	status = "okay";
164	dr_mode = "peripheral";
165};
166
167&usdhc2 {
168	status = "okay";
169};
170
171&usdhc3 {
172	status = "okay";
173};
174