xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-axg-s400.dts (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot/dts-v1/;
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot#include "meson-axg.dtsi"
9c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel Vadot/ {
12c66ec88fSEmmanuel Vadot	compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
13c66ec88fSEmmanuel Vadot	model = "Amlogic Meson AXG S400 Development Board";
14c66ec88fSEmmanuel Vadot
1501950c46SEmmanuel Vadot	keys {
16c66ec88fSEmmanuel Vadot		compatible = "adc-keys";
17c66ec88fSEmmanuel Vadot		io-channels = <&saradc 0>;
18c66ec88fSEmmanuel Vadot		io-channel-names = "buttons";
19c66ec88fSEmmanuel Vadot		keyup-threshold-microvolt = <1800000>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot		button-next {
22c66ec88fSEmmanuel Vadot			label = "Next";
23c66ec88fSEmmanuel Vadot			linux,code = <KEY_NEXT>;
24c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <1116000>; /* 62% */
25c66ec88fSEmmanuel Vadot		};
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot		button-prev {
28c66ec88fSEmmanuel Vadot			label = "Previous";
29c66ec88fSEmmanuel Vadot			linux,code = <KEY_PREVIOUS>;
30c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <900000>; /* 50% */
31c66ec88fSEmmanuel Vadot		};
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot		button-wifi {
34c66ec88fSEmmanuel Vadot			label = "Wifi";
35c66ec88fSEmmanuel Vadot			linux,code = <KEY_WLAN>;
36c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <684000>; /* 38% */
37c66ec88fSEmmanuel Vadot		};
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot		button-up {
40c66ec88fSEmmanuel Vadot			label = "Volume Up";
41c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
42c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <468000>; /* 26% */
43c66ec88fSEmmanuel Vadot		};
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot		button-down {
46c66ec88fSEmmanuel Vadot			label = "Volume Down";
47c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOLUMEDOWN>;
48c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <252000>; /* 14% */
49c66ec88fSEmmanuel Vadot		};
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot		button-voice {
52c66ec88fSEmmanuel Vadot			label = "Voice";
53c66ec88fSEmmanuel Vadot			linux,code = <KEY_VOICECOMMAND>;
54c66ec88fSEmmanuel Vadot			press-threshold-microvolt = <0>; /* 0% */
55c66ec88fSEmmanuel Vadot		};
56c66ec88fSEmmanuel Vadot	};
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot	aliases {
59c66ec88fSEmmanuel Vadot		serial0 = &uart_AO;
60c66ec88fSEmmanuel Vadot		serial1 = &uart_A;
61c66ec88fSEmmanuel Vadot	};
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot	linein: audio-codec-0 {
64c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
65c66ec88fSEmmanuel Vadot		compatible = "everest,es7241";
66c66ec88fSEmmanuel Vadot		VDDA-supply = <&vcc_3v3>;
67c66ec88fSEmmanuel Vadot		VDDP-supply = <&vcc_3v3>;
68c66ec88fSEmmanuel Vadot		VDDD-supply = <&vcc_3v3>;
69c66ec88fSEmmanuel Vadot		sound-name-prefix = "Linein";
70c66ec88fSEmmanuel Vadot	};
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot	lineout: audio-codec-1 {
73c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
74c66ec88fSEmmanuel Vadot		compatible = "everest,es7154";
75c66ec88fSEmmanuel Vadot		VDD-supply = <&vcc_3v3>;
76c66ec88fSEmmanuel Vadot		PVDD-supply = <&vcc_5v>;
77c66ec88fSEmmanuel Vadot		sound-name-prefix = "Lineout";
78c66ec88fSEmmanuel Vadot	};
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot	spdif_dit: audio-codec-2 {
81c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
82c66ec88fSEmmanuel Vadot		compatible = "linux,spdif-dit";
83c66ec88fSEmmanuel Vadot		sound-name-prefix = "DIT";
84c66ec88fSEmmanuel Vadot	};
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot	dmics: audio-codec-3 {
87c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
88c66ec88fSEmmanuel Vadot		compatible = "dmic-codec";
89c66ec88fSEmmanuel Vadot		num-channels = <7>;
90c66ec88fSEmmanuel Vadot		wakeup-delay-ms = <50>;
91c66ec88fSEmmanuel Vadot		sound-name-prefix = "MIC";
92c66ec88fSEmmanuel Vadot	};
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot	spdif_dir: audio-codec-4 {
95c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
96c66ec88fSEmmanuel Vadot		compatible = "linux,spdif-dir";
97c66ec88fSEmmanuel Vadot		sound-name-prefix = "DIR";
98c66ec88fSEmmanuel Vadot	};
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot	emmc_pwrseq: emmc-pwrseq {
101c66ec88fSEmmanuel Vadot		compatible = "mmc-pwrseq-emmc";
102c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
103c66ec88fSEmmanuel Vadot	};
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot	chosen {
106c66ec88fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
107c66ec88fSEmmanuel Vadot	};
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot	memory@0 {
110c66ec88fSEmmanuel Vadot		device_type = "memory";
111c66ec88fSEmmanuel Vadot		reg = <0x0 0x0 0x0 0x40000000>;
112c66ec88fSEmmanuel Vadot	};
113c66ec88fSEmmanuel Vadot
11401950c46SEmmanuel Vadot	main_12v: regulator-main-12v {
115c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
116c66ec88fSEmmanuel Vadot		regulator-name = "12V";
117c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
118c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
119c66ec88fSEmmanuel Vadot		regulator-always-on;
120c66ec88fSEmmanuel Vadot	};
121c66ec88fSEmmanuel Vadot
12201950c46SEmmanuel Vadot	vcc_3v3: regulator-vcc-3v3 {
123c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
124c66ec88fSEmmanuel Vadot		regulator-name = "VCC_3V3";
125c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
126c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
127c66ec88fSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
128c66ec88fSEmmanuel Vadot		regulator-always-on;
129c66ec88fSEmmanuel Vadot	};
130c66ec88fSEmmanuel Vadot
13101950c46SEmmanuel Vadot	vcc_5v: regulator-vcc-5v {
132c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
133c66ec88fSEmmanuel Vadot		regulator-name = "VCC5V";
134c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
135c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
136c66ec88fSEmmanuel Vadot		vin-supply = <&main_12v>;
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot		gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
139c66ec88fSEmmanuel Vadot		enable-active-high;
140c66ec88fSEmmanuel Vadot	};
141c66ec88fSEmmanuel Vadot
14201950c46SEmmanuel Vadot	vddao_3v3: regulator-vddao-3v3 {
143c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
144c66ec88fSEmmanuel Vadot		regulator-name = "VDDAO_3V3";
145c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
146c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
147c66ec88fSEmmanuel Vadot		vin-supply = <&main_12v>;
148c66ec88fSEmmanuel Vadot		regulator-always-on;
149c66ec88fSEmmanuel Vadot	};
150c66ec88fSEmmanuel Vadot
15101950c46SEmmanuel Vadot	vddio_ao18: regulator-vddio-ao18 {
152c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
153c66ec88fSEmmanuel Vadot		regulator-name = "VDDIO_AO18";
154c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
155c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
156c66ec88fSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
157c66ec88fSEmmanuel Vadot		regulator-always-on;
158c66ec88fSEmmanuel Vadot	};
159c66ec88fSEmmanuel Vadot
16001950c46SEmmanuel Vadot	vddio_boot: regulator-vddio-boot {
161c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
162c66ec88fSEmmanuel Vadot		regulator-name = "VDDIO_BOOT";
163c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
164c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
165c66ec88fSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
166c66ec88fSEmmanuel Vadot		regulator-always-on;
167c66ec88fSEmmanuel Vadot	};
168c66ec88fSEmmanuel Vadot
16901950c46SEmmanuel Vadot	usb_pwr: regulator-usb-pwr {
170c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
171c66ec88fSEmmanuel Vadot		regulator-name = "USB_PWR";
172c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
173c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
174c66ec88fSEmmanuel Vadot		vin-supply = <&vcc_5v>;
175c66ec88fSEmmanuel Vadot
176c66ec88fSEmmanuel Vadot		gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
177c66ec88fSEmmanuel Vadot		enable-active-high;
178c66ec88fSEmmanuel Vadot	};
179c66ec88fSEmmanuel Vadot
180c66ec88fSEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
181c66ec88fSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
182c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
183c66ec88fSEmmanuel Vadot		clocks = <&wifi32k>;
184c66ec88fSEmmanuel Vadot		clock-names = "ext_clock";
185c66ec88fSEmmanuel Vadot	};
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot	speaker-leds {
188c66ec88fSEmmanuel Vadot		compatible = "gpio-leds";
189c66ec88fSEmmanuel Vadot
190c66ec88fSEmmanuel Vadot		aled1 {
191c66ec88fSEmmanuel Vadot			label = "speaker:aled1";
192c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 7 0>;
193c66ec88fSEmmanuel Vadot		};
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot		aled2 {
196c66ec88fSEmmanuel Vadot			label = "speaker:aled2";
197c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 6 0>;
198c66ec88fSEmmanuel Vadot		};
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot		aled3 {
201c66ec88fSEmmanuel Vadot			label = "speaker:aled3";
202c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 5 0>;
203c66ec88fSEmmanuel Vadot		};
204c66ec88fSEmmanuel Vadot
205c66ec88fSEmmanuel Vadot		aled4 {
206c66ec88fSEmmanuel Vadot			label = "speaker:aled4";
207c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 4 0>;
208c66ec88fSEmmanuel Vadot		};
209c66ec88fSEmmanuel Vadot
210c66ec88fSEmmanuel Vadot		aled5 {
211c66ec88fSEmmanuel Vadot			label = "speaker:aled5";
212c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 3 0>;
213c66ec88fSEmmanuel Vadot		};
214c66ec88fSEmmanuel Vadot
215c66ec88fSEmmanuel Vadot		aled6 {
216c66ec88fSEmmanuel Vadot			label = "speaker:aled6";
217c66ec88fSEmmanuel Vadot			gpios = <&gpio_speaker 2 0>;
218c66ec88fSEmmanuel Vadot		};
219c66ec88fSEmmanuel Vadot	};
220c66ec88fSEmmanuel Vadot
221c66ec88fSEmmanuel Vadot	sound {
222c66ec88fSEmmanuel Vadot		compatible = "amlogic,axg-sound-card";
223c66ec88fSEmmanuel Vadot		model = "AXG-S400";
224c66ec88fSEmmanuel Vadot		audio-aux-devs = <&tdmin_a>, <&tdmin_b>,  <&tdmin_c>,
225c66ec88fSEmmanuel Vadot				 <&tdmin_lb>, <&tdmout_c>;
226c66ec88fSEmmanuel Vadot		audio-widgets = "Line", "Lineout",
227c66ec88fSEmmanuel Vadot				"Line", "Linein",
228c66ec88fSEmmanuel Vadot				"Speaker", "Speaker1 Left",
229c66ec88fSEmmanuel Vadot				"Speaker", "Speaker1 Right";
230c66ec88fSEmmanuel Vadot		audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
231c66ec88fSEmmanuel Vadot				"SPDIFOUT IN 0", "FRDDR_A OUT 3",
232c66ec88fSEmmanuel Vadot				"TDMOUT_C IN 1", "FRDDR_B OUT 2",
233c66ec88fSEmmanuel Vadot				"SPDIFOUT IN 1", "FRDDR_B OUT 3",
234c66ec88fSEmmanuel Vadot				"TDMOUT_C IN 2", "FRDDR_C OUT 2",
235c66ec88fSEmmanuel Vadot				"SPDIFOUT IN 2", "FRDDR_C OUT 3",
236c66ec88fSEmmanuel Vadot				"TDM_C Playback", "TDMOUT_C OUT",
237c66ec88fSEmmanuel Vadot				"TDMIN_A IN 2", "TDM_C Capture",
238c66ec88fSEmmanuel Vadot				"TDMIN_A IN 5", "TDM_C Loopback",
239c66ec88fSEmmanuel Vadot				"TDMIN_B IN 2", "TDM_C Capture",
240c66ec88fSEmmanuel Vadot				"TDMIN_B IN 5", "TDM_C Loopback",
241c66ec88fSEmmanuel Vadot				"TDMIN_C IN 2", "TDM_C Capture",
242c66ec88fSEmmanuel Vadot				"TDMIN_C IN 5", "TDM_C Loopback",
243c66ec88fSEmmanuel Vadot				"TDMIN_LB IN 2", "TDM_C Loopback",
244c66ec88fSEmmanuel Vadot				"TDMIN_LB IN 5", "TDM_C Capture",
245c66ec88fSEmmanuel Vadot				"TODDR_A IN 0", "TDMIN_A OUT",
246c66ec88fSEmmanuel Vadot				"TODDR_B IN 0", "TDMIN_A OUT",
247c66ec88fSEmmanuel Vadot				"TODDR_C IN 0", "TDMIN_A OUT",
248c66ec88fSEmmanuel Vadot				"TODDR_A IN 1", "TDMIN_B OUT",
249c66ec88fSEmmanuel Vadot				"TODDR_B IN 1", "TDMIN_B OUT",
250c66ec88fSEmmanuel Vadot				"TODDR_C IN 1", "TDMIN_B OUT",
251c66ec88fSEmmanuel Vadot				"TODDR_A IN 2", "TDMIN_C OUT",
252c66ec88fSEmmanuel Vadot				"TODDR_B IN 2", "TDMIN_C OUT",
253c66ec88fSEmmanuel Vadot				"TODDR_C IN 2", "TDMIN_C OUT",
254c66ec88fSEmmanuel Vadot				"TODDR_A IN 3", "SPDIFIN Capture",
255c66ec88fSEmmanuel Vadot				"TODDR_B IN 3", "SPDIFIN Capture",
256c66ec88fSEmmanuel Vadot				"TODDR_C IN 3", "SPDIFIN Capture",
257c66ec88fSEmmanuel Vadot				"TODDR_A IN 4", "PDM Capture",
258c66ec88fSEmmanuel Vadot				"TODDR_B IN 4", "PDM Capture",
259c66ec88fSEmmanuel Vadot				"TODDR_C IN 4", "PDM Capture",
260c66ec88fSEmmanuel Vadot				"TODDR_A IN 6", "TDMIN_LB OUT",
261c66ec88fSEmmanuel Vadot				"TODDR_B IN 6", "TDMIN_LB OUT",
262c66ec88fSEmmanuel Vadot				"TODDR_C IN 6", "TDMIN_LB OUT",
263c66ec88fSEmmanuel Vadot				"Lineout", "Lineout AOUTL",
264c66ec88fSEmmanuel Vadot				"Lineout", "Lineout AOUTR",
265c66ec88fSEmmanuel Vadot				"Speaker1 Left", "SPK1 OUT_A",
266c66ec88fSEmmanuel Vadot				"Speaker1 Left", "SPK1 OUT_B",
267c66ec88fSEmmanuel Vadot				"Speaker1 Right", "SPK1 OUT_C",
268c66ec88fSEmmanuel Vadot				"Speaker1 Right", "SPK1 OUT_D",
269c66ec88fSEmmanuel Vadot				"Linein AINL", "Linein",
270c66ec88fSEmmanuel Vadot				"Linein AINR", "Linein";
271*b2d2a78aSEmmanuel Vadot		clocks = <&clkc CLKID_HIFI_PLL>,
272*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL0>,
273*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL1>;
274*b2d2a78aSEmmanuel Vadot
275c66ec88fSEmmanuel Vadot		assigned-clocks = <&clkc CLKID_HIFI_PLL>,
276c66ec88fSEmmanuel Vadot				  <&clkc CLKID_MPLL0>,
277c66ec88fSEmmanuel Vadot				  <&clkc CLKID_MPLL1>;
278c66ec88fSEmmanuel Vadot		assigned-clock-parents = <0>, <0>, <0>;
279c66ec88fSEmmanuel Vadot		assigned-clock-rates = <589824000>,
280c66ec88fSEmmanuel Vadot				       <270950400>,
281c66ec88fSEmmanuel Vadot				       <393216000>;
282c66ec88fSEmmanuel Vadot
283c66ec88fSEmmanuel Vadot		dai-link-0 {
284c66ec88fSEmmanuel Vadot			sound-dai = <&frddr_a>;
285c66ec88fSEmmanuel Vadot		};
286c66ec88fSEmmanuel Vadot
287c66ec88fSEmmanuel Vadot		dai-link-1 {
288c66ec88fSEmmanuel Vadot			sound-dai = <&frddr_b>;
289c66ec88fSEmmanuel Vadot		};
290c66ec88fSEmmanuel Vadot
291c66ec88fSEmmanuel Vadot		dai-link-2 {
292c66ec88fSEmmanuel Vadot			sound-dai = <&frddr_c>;
293c66ec88fSEmmanuel Vadot		};
294c66ec88fSEmmanuel Vadot
295c66ec88fSEmmanuel Vadot		dai-link-3 {
296c66ec88fSEmmanuel Vadot			sound-dai = <&toddr_a>;
297c66ec88fSEmmanuel Vadot		};
298c66ec88fSEmmanuel Vadot
299c66ec88fSEmmanuel Vadot		dai-link-4 {
300c66ec88fSEmmanuel Vadot			sound-dai = <&toddr_b>;
301c66ec88fSEmmanuel Vadot		};
302c66ec88fSEmmanuel Vadot
303c66ec88fSEmmanuel Vadot		dai-link-5 {
304c66ec88fSEmmanuel Vadot			sound-dai = <&toddr_c>;
305c66ec88fSEmmanuel Vadot		};
306c66ec88fSEmmanuel Vadot
307c66ec88fSEmmanuel Vadot		dai-link-6 {
308c66ec88fSEmmanuel Vadot			sound-dai = <&tdmif_c>;
309c66ec88fSEmmanuel Vadot			dai-format = "i2s";
310c66ec88fSEmmanuel Vadot			dai-tdm-slot-tx-mask-2 = <1 1>;
311c66ec88fSEmmanuel Vadot			dai-tdm-slot-rx-mask-1 = <1 1>;
312c66ec88fSEmmanuel Vadot			mclk-fs = <256>;
313c66ec88fSEmmanuel Vadot
314c66ec88fSEmmanuel Vadot			codec-0 {
315c66ec88fSEmmanuel Vadot				sound-dai = <&lineout>;
316c66ec88fSEmmanuel Vadot			};
317c66ec88fSEmmanuel Vadot
318c66ec88fSEmmanuel Vadot			codec-1 {
319c66ec88fSEmmanuel Vadot				sound-dai = <&speaker_amp1>;
320c66ec88fSEmmanuel Vadot			};
321c66ec88fSEmmanuel Vadot
322c66ec88fSEmmanuel Vadot			codec-2 {
323c66ec88fSEmmanuel Vadot				sound-dai = <&linein>;
324c66ec88fSEmmanuel Vadot			};
325c66ec88fSEmmanuel Vadot
326c66ec88fSEmmanuel Vadot		};
327c66ec88fSEmmanuel Vadot
328c66ec88fSEmmanuel Vadot		dai-link-7 {
329c66ec88fSEmmanuel Vadot			sound-dai = <&spdifout>;
330c66ec88fSEmmanuel Vadot
331c66ec88fSEmmanuel Vadot			codec {
332c66ec88fSEmmanuel Vadot				sound-dai = <&spdif_dit>;
333c66ec88fSEmmanuel Vadot			};
334c66ec88fSEmmanuel Vadot		};
335c66ec88fSEmmanuel Vadot
336c66ec88fSEmmanuel Vadot		dai-link-8 {
337c66ec88fSEmmanuel Vadot			sound-dai = <&spdifin>;
338c66ec88fSEmmanuel Vadot
339c66ec88fSEmmanuel Vadot			codec {
340c66ec88fSEmmanuel Vadot				sound-dai = <&spdif_dir>;
341c66ec88fSEmmanuel Vadot			};
342c66ec88fSEmmanuel Vadot		};
343c66ec88fSEmmanuel Vadot
344c66ec88fSEmmanuel Vadot		dai-link-9 {
345c66ec88fSEmmanuel Vadot			sound-dai = <&pdm>;
346c66ec88fSEmmanuel Vadot
347c66ec88fSEmmanuel Vadot			codec {
348c66ec88fSEmmanuel Vadot				sound-dai = <&dmics>;
349c66ec88fSEmmanuel Vadot			};
350c66ec88fSEmmanuel Vadot		};
351c66ec88fSEmmanuel Vadot	};
352c66ec88fSEmmanuel Vadot
353c66ec88fSEmmanuel Vadot	wifi32k: wifi32k {
354c66ec88fSEmmanuel Vadot		compatible = "pwm-clock";
355c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
356c66ec88fSEmmanuel Vadot		clock-frequency = <32768>;
357c66ec88fSEmmanuel Vadot		pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
358c66ec88fSEmmanuel Vadot	};
359c66ec88fSEmmanuel Vadot};
360c66ec88fSEmmanuel Vadot
361c66ec88fSEmmanuel Vadot&ethmac {
362c66ec88fSEmmanuel Vadot	status = "okay";
363c66ec88fSEmmanuel Vadot	pinctrl-0 = <&eth_rgmii_y_pins>;
364c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
365c66ec88fSEmmanuel Vadot	phy-handle = <&eth_phy0>;
366c66ec88fSEmmanuel Vadot	phy-mode = "rgmii";
367c66ec88fSEmmanuel Vadot
368c66ec88fSEmmanuel Vadot	mdio {
369c66ec88fSEmmanuel Vadot		compatible = "snps,dwmac-mdio";
370c66ec88fSEmmanuel Vadot		#address-cells = <1>;
371c66ec88fSEmmanuel Vadot		#size-cells = <0>;
372c66ec88fSEmmanuel Vadot
373c66ec88fSEmmanuel Vadot		eth_phy0: ethernet-phy@0 {
374c66ec88fSEmmanuel Vadot			/* Realtek RTL8211F (0x001cc916) */
375c66ec88fSEmmanuel Vadot			reg = <0>;
376c66ec88fSEmmanuel Vadot			interrupt-parent = <&gpio_intc>;
377c66ec88fSEmmanuel Vadot			interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
378c66ec88fSEmmanuel Vadot			eee-broken-1000t;
379c66ec88fSEmmanuel Vadot		};
380c66ec88fSEmmanuel Vadot	};
381c66ec88fSEmmanuel Vadot};
382c66ec88fSEmmanuel Vadot
383c66ec88fSEmmanuel Vadot&frddr_a {
384c66ec88fSEmmanuel Vadot	status = "okay";
385c66ec88fSEmmanuel Vadot};
386c66ec88fSEmmanuel Vadot
387c66ec88fSEmmanuel Vadot&frddr_b {
388c66ec88fSEmmanuel Vadot	status = "okay";
389c66ec88fSEmmanuel Vadot};
390c66ec88fSEmmanuel Vadot
391c66ec88fSEmmanuel Vadot&frddr_c {
392c66ec88fSEmmanuel Vadot	status = "okay";
393c66ec88fSEmmanuel Vadot};
394c66ec88fSEmmanuel Vadot
395c66ec88fSEmmanuel Vadot&ir {
396c66ec88fSEmmanuel Vadot	status = "okay";
397c66ec88fSEmmanuel Vadot	pinctrl-0 = <&remote_input_ao_pins>;
398c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
399c66ec88fSEmmanuel Vadot};
400c66ec88fSEmmanuel Vadot
401c66ec88fSEmmanuel Vadot&i2c1 {
402c66ec88fSEmmanuel Vadot	status = "okay";
403c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c1_z_pins>;
404c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
405c66ec88fSEmmanuel Vadot
406c66ec88fSEmmanuel Vadot	speaker_amp1: audio-codec@1b {
407c66ec88fSEmmanuel Vadot		compatible = "ti,tas5707";
408c66ec88fSEmmanuel Vadot		reg = <0x1b>;
409c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
410c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
411c66ec88fSEmmanuel Vadot		AVDD-supply = <&vcc_3v3>;
412c66ec88fSEmmanuel Vadot		DVDD-supply = <&vcc_3v3>;
413c66ec88fSEmmanuel Vadot		PVDD_A-supply = <&main_12v>;
414c66ec88fSEmmanuel Vadot		PVDD_B-supply = <&main_12v>;
415c66ec88fSEmmanuel Vadot		PVDD_C-supply = <&main_12v>;
416c66ec88fSEmmanuel Vadot		PVDD_D-supply = <&main_12v>;
417c66ec88fSEmmanuel Vadot		sound-name-prefix = "SPK1";
418c66ec88fSEmmanuel Vadot	};
419c66ec88fSEmmanuel Vadot};
420c66ec88fSEmmanuel Vadot
421c66ec88fSEmmanuel Vadot&i2c_AO {
422c66ec88fSEmmanuel Vadot	status = "okay";
423c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
424c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
425c66ec88fSEmmanuel Vadot
426c66ec88fSEmmanuel Vadot	gpio_speaker: gpio-controller@1f {
427c66ec88fSEmmanuel Vadot		compatible = "nxp,pca9557";
428c66ec88fSEmmanuel Vadot		reg = <0x1f>;
429c66ec88fSEmmanuel Vadot		gpio-controller;
430c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
431c66ec88fSEmmanuel Vadot		vcc-supply = <&vddao_3v3>;
432c66ec88fSEmmanuel Vadot	};
433c66ec88fSEmmanuel Vadot};
434c66ec88fSEmmanuel Vadot
435c66ec88fSEmmanuel Vadot&pdm {
436c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pdm_dclk_a14_pins>, <&pdm_din0_pins>,
437c66ec88fSEmmanuel Vadot		    <&pdm_din1_pins>, <&pdm_din2_pins>, <&pdm_din3_pins>;
438c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
439c66ec88fSEmmanuel Vadot	status = "okay";
440c66ec88fSEmmanuel Vadot};
441c66ec88fSEmmanuel Vadot
4425def4c47SEmmanuel Vadot&pcieA {
4435def4c47SEmmanuel Vadot	reset-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>;
4445def4c47SEmmanuel Vadot	status = "okay";
4455def4c47SEmmanuel Vadot};
4465def4c47SEmmanuel Vadot
4475def4c47SEmmanuel Vadot&pcieB {
4485def4c47SEmmanuel Vadot	reset-gpios = <&gpio GPIOZ_10 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
4495def4c47SEmmanuel Vadot	status = "okay";
4505def4c47SEmmanuel Vadot};
4515def4c47SEmmanuel Vadot
452c66ec88fSEmmanuel Vadot&pwm_ab {
453c66ec88fSEmmanuel Vadot	status = "okay";
454c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pwm_a_x20_pins>;
455c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
456c66ec88fSEmmanuel Vadot};
457c66ec88fSEmmanuel Vadot
458c66ec88fSEmmanuel Vadot&saradc {
459c66ec88fSEmmanuel Vadot	status = "okay";
460c66ec88fSEmmanuel Vadot	vref-supply = <&vddio_ao18>;
461c66ec88fSEmmanuel Vadot};
462c66ec88fSEmmanuel Vadot
463c66ec88fSEmmanuel Vadot/* wifi module */
464c66ec88fSEmmanuel Vadot&sd_emmc_b {
465c66ec88fSEmmanuel Vadot	status = "okay";
466c66ec88fSEmmanuel Vadot	#address-cells = <1>;
467c66ec88fSEmmanuel Vadot	#size-cells = <0>;
468c66ec88fSEmmanuel Vadot
469c66ec88fSEmmanuel Vadot	pinctrl-0 = <&sdio_pins>;
470c66ec88fSEmmanuel Vadot	pinctrl-1 = <&sdio_clk_gate_pins>;
471c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
472c66ec88fSEmmanuel Vadot
473c66ec88fSEmmanuel Vadot	bus-width = <4>;
474c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
475c66ec88fSEmmanuel Vadot	sd-uhs-sdr104;
476c66ec88fSEmmanuel Vadot	max-frequency = <200000000>;
477c66ec88fSEmmanuel Vadot	non-removable;
478c66ec88fSEmmanuel Vadot	disable-wp;
479c66ec88fSEmmanuel Vadot
480c66ec88fSEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
481c66ec88fSEmmanuel Vadot
482c66ec88fSEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
483c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vddio_boot>;
484c66ec88fSEmmanuel Vadot
485c66ec88fSEmmanuel Vadot	brcmf: wifi@1 {
486c66ec88fSEmmanuel Vadot		reg = <1>;
487c66ec88fSEmmanuel Vadot		compatible = "brcm,bcm4329-fmac";
488c66ec88fSEmmanuel Vadot	};
489c66ec88fSEmmanuel Vadot};
490c66ec88fSEmmanuel Vadot
491c66ec88fSEmmanuel Vadot/* emmc storage */
492c66ec88fSEmmanuel Vadot&sd_emmc_c {
493c66ec88fSEmmanuel Vadot	status = "okay";
494c66ec88fSEmmanuel Vadot	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
495c66ec88fSEmmanuel Vadot	pinctrl-1 = <&emmc_clk_gate_pins>;
496c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
497c66ec88fSEmmanuel Vadot
498c66ec88fSEmmanuel Vadot	bus-width = <8>;
499c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
500c66ec88fSEmmanuel Vadot	max-frequency = <200000000>;
501c66ec88fSEmmanuel Vadot	non-removable;
502c66ec88fSEmmanuel Vadot	disable-wp;
503c66ec88fSEmmanuel Vadot	mmc-ddr-1_8v;
504c66ec88fSEmmanuel Vadot	mmc-hs200-1_8v;
505c66ec88fSEmmanuel Vadot
506c66ec88fSEmmanuel Vadot	mmc-pwrseq = <&emmc_pwrseq>;
507c66ec88fSEmmanuel Vadot
508c66ec88fSEmmanuel Vadot	vmmc-supply = <&vcc_3v3>;
509c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vddio_boot>;
510c66ec88fSEmmanuel Vadot};
511c66ec88fSEmmanuel Vadot
512c66ec88fSEmmanuel Vadot&spdifin {
513c66ec88fSEmmanuel Vadot	pinctrl-0 = <&spdif_in_a19_pins>;
514c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
515c66ec88fSEmmanuel Vadot	status = "okay";
516c66ec88fSEmmanuel Vadot};
517c66ec88fSEmmanuel Vadot
518c66ec88fSEmmanuel Vadot&spdifout {
519c66ec88fSEmmanuel Vadot	pinctrl-0 = <&spdif_out_a20_pins>;
520c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
521c66ec88fSEmmanuel Vadot	status = "okay";
522c66ec88fSEmmanuel Vadot};
523c66ec88fSEmmanuel Vadot
524c66ec88fSEmmanuel Vadot&tdmif_a {
525c66ec88fSEmmanuel Vadot	pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>,
526c66ec88fSEmmanuel Vadot		    <&tdma_din0_pins>, <&tdma_dout0_x15_pins>;
527c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
528c66ec88fSEmmanuel Vadot	status = "okay";
529c66ec88fSEmmanuel Vadot};
530c66ec88fSEmmanuel Vadot
531c66ec88fSEmmanuel Vadot&tdmif_b {
532c66ec88fSEmmanuel Vadot	pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>,
533c66ec88fSEmmanuel Vadot		    <&tdmb_din3_pins>, <&mclk_b_pins>;
534c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
535c66ec88fSEmmanuel Vadot	status = "okay";
536c66ec88fSEmmanuel Vadot};
537c66ec88fSEmmanuel Vadot
538c66ec88fSEmmanuel Vadot&tdmif_c {
539c66ec88fSEmmanuel Vadot	pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>,
540c66ec88fSEmmanuel Vadot		    <&tdmc_din1_pins>, <&tdmc_dout2_pins>,
541c66ec88fSEmmanuel Vadot		    <&mclk_c_pins>;
542c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
543c66ec88fSEmmanuel Vadot	status = "okay";
544c66ec88fSEmmanuel Vadot};
545c66ec88fSEmmanuel Vadot
546c66ec88fSEmmanuel Vadot&tdmin_a {
547c66ec88fSEmmanuel Vadot	status = "okay";
548c66ec88fSEmmanuel Vadot};
549c66ec88fSEmmanuel Vadot
550c66ec88fSEmmanuel Vadot&tdmin_b {
551c66ec88fSEmmanuel Vadot	status = "okay";
552c66ec88fSEmmanuel Vadot};
553c66ec88fSEmmanuel Vadot
554c66ec88fSEmmanuel Vadot&tdmin_c {
555c66ec88fSEmmanuel Vadot	status = "okay";
556c66ec88fSEmmanuel Vadot};
557c66ec88fSEmmanuel Vadot
558c66ec88fSEmmanuel Vadot&tdmin_lb {
559c66ec88fSEmmanuel Vadot	status = "okay";
560c66ec88fSEmmanuel Vadot};
561c66ec88fSEmmanuel Vadot
562c66ec88fSEmmanuel Vadot&tdmout_c {
563c66ec88fSEmmanuel Vadot	status = "okay";
564c66ec88fSEmmanuel Vadot};
565c66ec88fSEmmanuel Vadot
566c66ec88fSEmmanuel Vadot&toddr_a {
567c66ec88fSEmmanuel Vadot	status = "okay";
568c66ec88fSEmmanuel Vadot};
569c66ec88fSEmmanuel Vadot
570c66ec88fSEmmanuel Vadot&toddr_b {
571c66ec88fSEmmanuel Vadot	status = "okay";
572c66ec88fSEmmanuel Vadot};
573c66ec88fSEmmanuel Vadot
574c66ec88fSEmmanuel Vadot&toddr_c {
575c66ec88fSEmmanuel Vadot	status = "okay";
576c66ec88fSEmmanuel Vadot};
577c66ec88fSEmmanuel Vadot
578c66ec88fSEmmanuel Vadot&uart_A {
579c66ec88fSEmmanuel Vadot	status = "okay";
580c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
581c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
582c66ec88fSEmmanuel Vadot	uart-has-rtscts;
583c66ec88fSEmmanuel Vadot
584c66ec88fSEmmanuel Vadot	bluetooth {
585c66ec88fSEmmanuel Vadot		compatible = "brcm,bcm43438-bt";
586c66ec88fSEmmanuel Vadot		shutdown-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
587c66ec88fSEmmanuel Vadot	};
588c66ec88fSEmmanuel Vadot};
589c66ec88fSEmmanuel Vadot
590c66ec88fSEmmanuel Vadot&uart_AO {
591c66ec88fSEmmanuel Vadot	status = "okay";
592c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart_ao_a_pins>;
593c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
594c66ec88fSEmmanuel Vadot};
5956be33864SEmmanuel Vadot
5966be33864SEmmanuel Vadot&usb {
5976be33864SEmmanuel Vadot	status = "okay";
5986be33864SEmmanuel Vadot	dr_mode = "otg";
5996be33864SEmmanuel Vadot	vbus-supply = <&usb_pwr>;
6006be33864SEmmanuel Vadot};
601