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