xref: /freebsd-src/sys/contrib/device-tree/src/arm64/amlogic/meson-g12a-u200.dts (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot/dts-v1/;
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot#include "meson-g12a.dtsi"
9c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h>
1184943d6fSEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
1284943d6fSEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-toacodec.h>
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot/ {
15c66ec88fSEmmanuel Vadot	compatible = "amlogic,u200", "amlogic,g12a";
16c66ec88fSEmmanuel Vadot	model = "Amlogic Meson G12A U200 Development Board";
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot	aliases {
19c66ec88fSEmmanuel Vadot		serial0 = &uart_AO;
20c66ec88fSEmmanuel Vadot		ethernet0 = &ethmac;
21c66ec88fSEmmanuel Vadot	};
22c66ec88fSEmmanuel Vadot
2384943d6fSEmmanuel Vadot	dioo2133: audio-amplifier-0 {
2484943d6fSEmmanuel Vadot		compatible = "simple-audio-amplifier";
2584943d6fSEmmanuel Vadot		enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
2684943d6fSEmmanuel Vadot		VCC-supply = <&vcc_5v>;
2784943d6fSEmmanuel Vadot		sound-name-prefix = "10U2";
2884943d6fSEmmanuel Vadot	};
2984943d6fSEmmanuel Vadot
3084943d6fSEmmanuel Vadot	spdif_dir: audio-codec-0 {
3184943d6fSEmmanuel Vadot		compatible = "linux,spdif-dir";
3284943d6fSEmmanuel Vadot		#sound-dai-cells = <0>;
3384943d6fSEmmanuel Vadot		sound-name-prefix = "DIR";
3484943d6fSEmmanuel Vadot	};
3584943d6fSEmmanuel Vadot
3684943d6fSEmmanuel Vadot	spdif_dit: audio-codec-1 {
3784943d6fSEmmanuel Vadot		compatible = "linux,spdif-dit";
3884943d6fSEmmanuel Vadot		#sound-dai-cells = <0>;
3984943d6fSEmmanuel Vadot		sound-name-prefix = "DIT";
4084943d6fSEmmanuel Vadot	};
4184943d6fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot	chosen {
43c66ec88fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
44c66ec88fSEmmanuel Vadot	};
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot	cvbs-connector {
47c66ec88fSEmmanuel Vadot		compatible = "composite-video-connector";
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot		port {
50c66ec88fSEmmanuel Vadot			cvbs_connector_in: endpoint {
51c66ec88fSEmmanuel Vadot				remote-endpoint = <&cvbs_vdac_out>;
52c66ec88fSEmmanuel Vadot			};
53c66ec88fSEmmanuel Vadot		};
54c66ec88fSEmmanuel Vadot	};
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot	emmc_pwrseq: emmc-pwrseq {
57c66ec88fSEmmanuel Vadot		compatible = "mmc-pwrseq-emmc";
58c66ec88fSEmmanuel Vadot		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
59c66ec88fSEmmanuel Vadot	};
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot	hdmi-connector {
62c66ec88fSEmmanuel Vadot		compatible = "hdmi-connector";
63c66ec88fSEmmanuel Vadot		type = "a";
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot		port {
66c66ec88fSEmmanuel Vadot			hdmi_connector_in: endpoint {
67c66ec88fSEmmanuel Vadot				remote-endpoint = <&hdmi_tx_tmds_out>;
68c66ec88fSEmmanuel Vadot			};
69c66ec88fSEmmanuel Vadot		};
70c66ec88fSEmmanuel Vadot	};
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot	memory@0 {
73c66ec88fSEmmanuel Vadot		device_type = "memory";
74c66ec88fSEmmanuel Vadot		reg = <0x0 0x0 0x0 0x40000000>;
75c66ec88fSEmmanuel Vadot	};
76c66ec88fSEmmanuel Vadot
7701950c46SEmmanuel Vadot	flash_1v8: regulator-flash-1v8 {
78c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
79c66ec88fSEmmanuel Vadot		regulator-name = "FLASH_1V8";
80c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
81c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
82c66ec88fSEmmanuel Vadot		vin-supply = <&vcc_3v3>;
83c66ec88fSEmmanuel Vadot		regulator-always-on;
84c66ec88fSEmmanuel Vadot	};
85c66ec88fSEmmanuel Vadot
8601950c46SEmmanuel Vadot	main_12v: regulator-main-12v {
87c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
88c66ec88fSEmmanuel Vadot		regulator-name = "12V";
89c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
90c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
91c66ec88fSEmmanuel Vadot		regulator-always-on;
92c66ec88fSEmmanuel Vadot	};
93c66ec88fSEmmanuel Vadot
9401950c46SEmmanuel Vadot	usb_pwr_en: regulator-usb-pwr-en {
95c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
96c66ec88fSEmmanuel Vadot		regulator-name = "USB_PWR_EN";
97c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
98c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
99c66ec88fSEmmanuel Vadot		vin-supply = <&vcc_5v>;
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
102c66ec88fSEmmanuel Vadot		enable-active-high;
103c66ec88fSEmmanuel Vadot	};
104c66ec88fSEmmanuel Vadot
10501950c46SEmmanuel Vadot	vcc_1v8: regulator-vcc-1v8 {
106c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
107c66ec88fSEmmanuel Vadot		regulator-name = "VCC_1V8";
108c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
109c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
110c66ec88fSEmmanuel Vadot		vin-supply = <&vcc_3v3>;
111c66ec88fSEmmanuel Vadot		regulator-always-on;
112c66ec88fSEmmanuel Vadot	};
113c66ec88fSEmmanuel Vadot
11401950c46SEmmanuel Vadot	vcc_3v3: regulator-vcc-3v3 {
115c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
116c66ec88fSEmmanuel Vadot		regulator-name = "VCC_3V3";
117c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
118c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
119c66ec88fSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
120c66ec88fSEmmanuel Vadot		regulator-always-on;
121c66ec88fSEmmanuel Vadot		/* FIXME: actually controlled by VDDCPU_B_EN */
122c66ec88fSEmmanuel Vadot	};
123c66ec88fSEmmanuel Vadot
12401950c46SEmmanuel Vadot	vcc_5v: regulator-vcc-5v {
125c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
126c66ec88fSEmmanuel Vadot		regulator-name = "VCC_5V";
127c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
128c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
129c66ec88fSEmmanuel Vadot		vin-supply = <&main_12v>;
130c66ec88fSEmmanuel Vadot
131c66ec88fSEmmanuel Vadot		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
132c66ec88fSEmmanuel Vadot		enable-active-high;
133c66ec88fSEmmanuel Vadot	};
134c66ec88fSEmmanuel Vadot
13501950c46SEmmanuel Vadot	vddao_1v8: regulator-vddao-1v8 {
136c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
137c66ec88fSEmmanuel Vadot		regulator-name = "VDDAO_1V8";
138c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
139c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
140c66ec88fSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
141c66ec88fSEmmanuel Vadot		regulator-always-on;
142c66ec88fSEmmanuel Vadot	};
143c66ec88fSEmmanuel Vadot
14401950c46SEmmanuel Vadot	vddao_3v3: regulator-vddao-3v3 {
145c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
146c66ec88fSEmmanuel Vadot		regulator-name = "VDDAO_3V3";
147c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
148c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
149c66ec88fSEmmanuel Vadot		vin-supply = <&main_12v>;
150c66ec88fSEmmanuel Vadot		regulator-always-on;
151c66ec88fSEmmanuel Vadot	};
152c66ec88fSEmmanuel Vadot
153c66ec88fSEmmanuel Vadot	vddcpu: regulator-vddcpu {
154c66ec88fSEmmanuel Vadot		/*
155c66ec88fSEmmanuel Vadot		 * MP8756GD Regulator.
156c66ec88fSEmmanuel Vadot		 */
157c66ec88fSEmmanuel Vadot		compatible = "pwm-regulator";
158c66ec88fSEmmanuel Vadot
159c66ec88fSEmmanuel Vadot		regulator-name = "VDDCPU";
160c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <721000>;
161c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1022000>;
162c66ec88fSEmmanuel Vadot
1638cc087a1SEmmanuel Vadot		pwm-supply = <&main_12v>;
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadot		pwms = <&pwm_AO_cd 1 1250 0>;
166c66ec88fSEmmanuel Vadot		pwm-dutycycle-range = <100 0>;
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel Vadot		regulator-boot-on;
169c66ec88fSEmmanuel Vadot		regulator-always-on;
170c66ec88fSEmmanuel Vadot	};
17184943d6fSEmmanuel Vadot
17284943d6fSEmmanuel Vadot	sound {
17384943d6fSEmmanuel Vadot		compatible = "amlogic,axg-sound-card";
17484943d6fSEmmanuel Vadot		model = "U200";
17584943d6fSEmmanuel Vadot		audio-widgets = "Line", "Lineout";
17684943d6fSEmmanuel Vadot		audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&tdmout_c>,
17784943d6fSEmmanuel Vadot				 <&tdmin_a>, <&tdmin_b>, <&tdmin_c>,
17884943d6fSEmmanuel Vadot				 <&tdmin_lb>, <&dioo2133>;
17984943d6fSEmmanuel Vadot		audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
18084943d6fSEmmanuel Vadot				"TDMOUT_A IN 1", "FRDDR_B OUT 0",
18184943d6fSEmmanuel Vadot				"TDMOUT_A IN 2", "FRDDR_C OUT 0",
18284943d6fSEmmanuel Vadot				"TDM_A Playback", "TDMOUT_A OUT",
18384943d6fSEmmanuel Vadot				"TDMOUT_B IN 0", "FRDDR_A OUT 1",
18484943d6fSEmmanuel Vadot				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
18584943d6fSEmmanuel Vadot				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
18684943d6fSEmmanuel Vadot				"TDM_B Playback", "TDMOUT_B OUT",
18784943d6fSEmmanuel Vadot				"TDMOUT_C IN 0", "FRDDR_A OUT 2",
18884943d6fSEmmanuel Vadot				"TDMOUT_C IN 1", "FRDDR_B OUT 2",
18984943d6fSEmmanuel Vadot				"TDMOUT_C IN 2", "FRDDR_C OUT 2",
19084943d6fSEmmanuel Vadot				"TDM_C Playback", "TDMOUT_C OUT",
19184943d6fSEmmanuel Vadot				"SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
19284943d6fSEmmanuel Vadot				"SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
19384943d6fSEmmanuel Vadot				"SPDIFOUT_A IN 2", "FRDDR_C OUT 3",
19484943d6fSEmmanuel Vadot				"SPDIFOUT_B IN 0", "FRDDR_A OUT 4",
19584943d6fSEmmanuel Vadot				"SPDIFOUT_B IN 1", "FRDDR_B OUT 4",
19684943d6fSEmmanuel Vadot				"SPDIFOUT_B IN 2", "FRDDR_C OUT 4",
19784943d6fSEmmanuel Vadot				"TDMIN_A IN 0", "TDM_A Capture",
19884943d6fSEmmanuel Vadot				"TDMIN_A IN 1", "TDM_B Capture",
19984943d6fSEmmanuel Vadot				"TDMIN_A IN 2", "TDM_C Capture",
20084943d6fSEmmanuel Vadot				"TDMIN_A IN 3", "TDM_A Loopback",
20184943d6fSEmmanuel Vadot				"TDMIN_A IN 4", "TDM_B Loopback",
20284943d6fSEmmanuel Vadot				"TDMIN_A IN 5", "TDM_C Loopback",
20384943d6fSEmmanuel Vadot				"TDMIN_B IN 0", "TDM_A Capture",
20484943d6fSEmmanuel Vadot				"TDMIN_B IN 1", "TDM_B Capture",
20584943d6fSEmmanuel Vadot				"TDMIN_B IN 2", "TDM_C Capture",
20684943d6fSEmmanuel Vadot				"TDMIN_B IN 3", "TDM_A Loopback",
20784943d6fSEmmanuel Vadot				"TDMIN_B IN 4", "TDM_B Loopback",
20884943d6fSEmmanuel Vadot				"TDMIN_B IN 5", "TDM_C Loopback",
20984943d6fSEmmanuel Vadot				"TDMIN_C IN 0", "TDM_A Capture",
21084943d6fSEmmanuel Vadot				"TDMIN_C IN 1", "TDM_B Capture",
21184943d6fSEmmanuel Vadot				"TDMIN_C IN 2", "TDM_C Capture",
21284943d6fSEmmanuel Vadot				"TDMIN_C IN 3", "TDM_A Loopback",
21384943d6fSEmmanuel Vadot				"TDMIN_C IN 4", "TDM_B Loopback",
21484943d6fSEmmanuel Vadot				"TDMIN_C IN 5", "TDM_C Loopback",
21584943d6fSEmmanuel Vadot				"TDMIN_LB IN 3", "TDM_A Capture",
21684943d6fSEmmanuel Vadot				"TDMIN_LB IN 4", "TDM_B Capture",
21784943d6fSEmmanuel Vadot				"TDMIN_LB IN 5", "TDM_C Capture",
21884943d6fSEmmanuel Vadot				"TDMIN_LB IN 0", "TDM_A Loopback",
21984943d6fSEmmanuel Vadot				"TDMIN_LB IN 1", "TDM_B Loopback",
22084943d6fSEmmanuel Vadot				"TDMIN_LB IN 2", "TDM_C Loopback",
22184943d6fSEmmanuel Vadot				"TODDR_A IN 0", "TDMIN_A OUT",
22284943d6fSEmmanuel Vadot				"TODDR_B IN 0", "TDMIN_A OUT",
22384943d6fSEmmanuel Vadot				"TODDR_C IN 0", "TDMIN_A OUT",
22484943d6fSEmmanuel Vadot				"TODDR_A IN 1", "TDMIN_B OUT",
22584943d6fSEmmanuel Vadot				"TODDR_B IN 1", "TDMIN_B OUT",
22684943d6fSEmmanuel Vadot				"TODDR_C IN 1", "TDMIN_B OUT",
22784943d6fSEmmanuel Vadot				"TODDR_A IN 2", "TDMIN_C OUT",
22884943d6fSEmmanuel Vadot				"TODDR_B IN 2", "TDMIN_C OUT",
22984943d6fSEmmanuel Vadot				"TODDR_C IN 2", "TDMIN_C OUT",
23084943d6fSEmmanuel Vadot				"TODDR_A IN 3", "SPDIFIN Capture",
23184943d6fSEmmanuel Vadot				"TODDR_B IN 3", "SPDIFIN Capture",
23284943d6fSEmmanuel Vadot				"TODDR_C IN 3", "SPDIFIN Capture",
23384943d6fSEmmanuel Vadot				"TODDR_A IN 6", "TDMIN_LB OUT",
23484943d6fSEmmanuel Vadot				"TODDR_B IN 6", "TDMIN_LB OUT",
23584943d6fSEmmanuel Vadot				"TODDR_C IN 6", "TDMIN_LB OUT",
23684943d6fSEmmanuel Vadot				"10U2 INL", "ACODEC LOLP",
23784943d6fSEmmanuel Vadot				"10U2 INR", "ACODEC LORP",
23884943d6fSEmmanuel Vadot				"Lineout", "10U2 OUTL",
23984943d6fSEmmanuel Vadot				"Lineout", "10U2 OUTR";
24084943d6fSEmmanuel Vadot
241*b2d2a78aSEmmanuel Vadot		clocks = <&clkc CLKID_MPLL2>,
242*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL0>,
243*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL1>;
244*b2d2a78aSEmmanuel Vadot
24584943d6fSEmmanuel Vadot		assigned-clocks = <&clkc CLKID_MPLL2>,
24684943d6fSEmmanuel Vadot				  <&clkc CLKID_MPLL0>,
24784943d6fSEmmanuel Vadot				  <&clkc CLKID_MPLL1>;
24884943d6fSEmmanuel Vadot		assigned-clock-parents = <0>, <0>, <0>;
24984943d6fSEmmanuel Vadot		assigned-clock-rates = <294912000>,
25084943d6fSEmmanuel Vadot				       <270950400>,
25184943d6fSEmmanuel Vadot				       <393216000>;
25284943d6fSEmmanuel Vadot
25384943d6fSEmmanuel Vadot		dai-link-0 {
25484943d6fSEmmanuel Vadot			sound-dai = <&frddr_a>;
25584943d6fSEmmanuel Vadot		};
25684943d6fSEmmanuel Vadot
25784943d6fSEmmanuel Vadot		dai-link-1 {
25884943d6fSEmmanuel Vadot			sound-dai = <&frddr_b>;
25984943d6fSEmmanuel Vadot		};
26084943d6fSEmmanuel Vadot
26184943d6fSEmmanuel Vadot		dai-link-2 {
26284943d6fSEmmanuel Vadot			sound-dai = <&frddr_c>;
26384943d6fSEmmanuel Vadot		};
26484943d6fSEmmanuel Vadot
26584943d6fSEmmanuel Vadot		dai-link-3 {
26684943d6fSEmmanuel Vadot			sound-dai = <&toddr_a>;
26784943d6fSEmmanuel Vadot		};
26884943d6fSEmmanuel Vadot
26984943d6fSEmmanuel Vadot		dai-link-4 {
27084943d6fSEmmanuel Vadot			sound-dai = <&toddr_b>;
27184943d6fSEmmanuel Vadot		};
27284943d6fSEmmanuel Vadot
27384943d6fSEmmanuel Vadot		dai-link-5 {
27484943d6fSEmmanuel Vadot			sound-dai = <&toddr_c>;
27584943d6fSEmmanuel Vadot		};
27684943d6fSEmmanuel Vadot
27784943d6fSEmmanuel Vadot		/* Connected to the WIFI/BT chip */
27884943d6fSEmmanuel Vadot		dai-link-6 {
27984943d6fSEmmanuel Vadot			sound-dai = <&tdmif_a>;
28084943d6fSEmmanuel Vadot			dai-format = "dsp_a";
28184943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-0 = <1 1>;
28284943d6fSEmmanuel Vadot			mclk-fs = <256>;
28384943d6fSEmmanuel Vadot
28484943d6fSEmmanuel Vadot			codec-0 {
28584943d6fSEmmanuel Vadot				sound-dai = <&toacodec TOACODEC_IN_A>;
28684943d6fSEmmanuel Vadot			};
28784943d6fSEmmanuel Vadot
28884943d6fSEmmanuel Vadot			codec-1 {
28984943d6fSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
29084943d6fSEmmanuel Vadot			};
29184943d6fSEmmanuel Vadot		};
29284943d6fSEmmanuel Vadot
29384943d6fSEmmanuel Vadot		/* Connected to the onboard AD82584F DAC */
29484943d6fSEmmanuel Vadot		dai-link-7 {
29584943d6fSEmmanuel Vadot			sound-dai = <&tdmif_b>;
29684943d6fSEmmanuel Vadot			dai-format = "i2s";
29784943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-0 = <1 1>;
29884943d6fSEmmanuel Vadot			mclk-fs = <256>;
29984943d6fSEmmanuel Vadot
30084943d6fSEmmanuel Vadot			codec-0 {
30184943d6fSEmmanuel Vadot				sound-dai = <&toacodec TOACODEC_IN_B>;
30284943d6fSEmmanuel Vadot			};
30384943d6fSEmmanuel Vadot
30484943d6fSEmmanuel Vadot			codec-1 {
30584943d6fSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
30684943d6fSEmmanuel Vadot			};
30784943d6fSEmmanuel Vadot		};
30884943d6fSEmmanuel Vadot
30984943d6fSEmmanuel Vadot		/* 8ch HDMI interface */
31084943d6fSEmmanuel Vadot		dai-link-8 {
31184943d6fSEmmanuel Vadot			sound-dai = <&tdmif_c>;
31284943d6fSEmmanuel Vadot			dai-format = "i2s";
31384943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-0 = <1 1>;
31484943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-1 = <1 1>;
31584943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-2 = <1 1>;
31684943d6fSEmmanuel Vadot			dai-tdm-slot-tx-mask-3 = <1 1>;
31784943d6fSEmmanuel Vadot			mclk-fs = <256>;
31884943d6fSEmmanuel Vadot
31984943d6fSEmmanuel Vadot			codec-0 {
32084943d6fSEmmanuel Vadot				sound-dai = <&toacodec TOACODEC_IN_C>;
32184943d6fSEmmanuel Vadot			};
32284943d6fSEmmanuel Vadot
32384943d6fSEmmanuel Vadot			codec-1 {
32484943d6fSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
32584943d6fSEmmanuel Vadot			};
32684943d6fSEmmanuel Vadot		};
32784943d6fSEmmanuel Vadot
32884943d6fSEmmanuel Vadot		/* spdif hdmi and coax output */
32984943d6fSEmmanuel Vadot		dai-link-9 {
33084943d6fSEmmanuel Vadot			sound-dai = <&spdifout_a>;
33184943d6fSEmmanuel Vadot
33284943d6fSEmmanuel Vadot			codec-0 {
33384943d6fSEmmanuel Vadot				sound-dai = <&spdif_dit>;
33484943d6fSEmmanuel Vadot			};
33584943d6fSEmmanuel Vadot
33684943d6fSEmmanuel Vadot			codec-1 {
33784943d6fSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
33884943d6fSEmmanuel Vadot			};
33984943d6fSEmmanuel Vadot		};
34084943d6fSEmmanuel Vadot
34184943d6fSEmmanuel Vadot		/* spdif hdmi interface */
34284943d6fSEmmanuel Vadot		dai-link-10 {
34384943d6fSEmmanuel Vadot			sound-dai = <&spdifout_b>;
34484943d6fSEmmanuel Vadot
34584943d6fSEmmanuel Vadot			codec {
34684943d6fSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
34784943d6fSEmmanuel Vadot			};
34884943d6fSEmmanuel Vadot		};
34984943d6fSEmmanuel Vadot
35084943d6fSEmmanuel Vadot		/* hdmi glue */
35184943d6fSEmmanuel Vadot		dai-link-11 {
35284943d6fSEmmanuel Vadot			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
35384943d6fSEmmanuel Vadot
35484943d6fSEmmanuel Vadot			codec {
35584943d6fSEmmanuel Vadot				sound-dai = <&hdmi_tx>;
35684943d6fSEmmanuel Vadot			};
35784943d6fSEmmanuel Vadot		};
35884943d6fSEmmanuel Vadot
35984943d6fSEmmanuel Vadot		/* internal codec glue */
36084943d6fSEmmanuel Vadot		dai-link-12 {
36184943d6fSEmmanuel Vadot			sound-dai = <&toacodec TOACODEC_OUT>;
36284943d6fSEmmanuel Vadot
36384943d6fSEmmanuel Vadot			codec {
36484943d6fSEmmanuel Vadot				sound-dai = <&acodec>;
36584943d6fSEmmanuel Vadot			};
36684943d6fSEmmanuel Vadot		};
36784943d6fSEmmanuel Vadot
36884943d6fSEmmanuel Vadot		/* spdif coax input */
36984943d6fSEmmanuel Vadot		dai-link-13 {
37084943d6fSEmmanuel Vadot			sound-dai = <&spdifin>;
37184943d6fSEmmanuel Vadot
37284943d6fSEmmanuel Vadot			codec {
37384943d6fSEmmanuel Vadot				sound-dai = <&spdif_dir>;
37484943d6fSEmmanuel Vadot			};
37584943d6fSEmmanuel Vadot		};
37684943d6fSEmmanuel Vadot	};
37784943d6fSEmmanuel Vadot};
37884943d6fSEmmanuel Vadot
37984943d6fSEmmanuel Vadot&acodec {
3800e8011faSEmmanuel Vadot	AVDD-supply = <&vddao_1v8>;
38184943d6fSEmmanuel Vadot	status = "okay";
38284943d6fSEmmanuel Vadot};
38384943d6fSEmmanuel Vadot
38484943d6fSEmmanuel Vadot&arb {
38584943d6fSEmmanuel Vadot	status = "okay";
386c66ec88fSEmmanuel Vadot};
387c66ec88fSEmmanuel Vadot
388c66ec88fSEmmanuel Vadot&cec_AO {
389c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cec_ao_a_h_pins>;
390c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
391c66ec88fSEmmanuel Vadot	status = "disabled";
392c66ec88fSEmmanuel Vadot	hdmi-phandle = <&hdmi_tx>;
393c66ec88fSEmmanuel Vadot};
394c66ec88fSEmmanuel Vadot
395c66ec88fSEmmanuel Vadot&cecb_AO {
396c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cec_ao_b_h_pins>;
397c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
398c66ec88fSEmmanuel Vadot	status = "okay";
399c66ec88fSEmmanuel Vadot	hdmi-phandle = <&hdmi_tx>;
400c66ec88fSEmmanuel Vadot};
401c66ec88fSEmmanuel Vadot
40284943d6fSEmmanuel Vadot&clkc_audio {
40384943d6fSEmmanuel Vadot	status = "okay";
40484943d6fSEmmanuel Vadot};
40584943d6fSEmmanuel Vadot
406c66ec88fSEmmanuel Vadot&cpu0 {
407c66ec88fSEmmanuel Vadot	cpu-supply = <&vddcpu>;
408c66ec88fSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
409c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
410c66ec88fSEmmanuel Vadot	clock-latency = <50000>;
411c66ec88fSEmmanuel Vadot};
412c66ec88fSEmmanuel Vadot
413c66ec88fSEmmanuel Vadot&cpu1 {
414c66ec88fSEmmanuel Vadot	cpu-supply = <&vddcpu>;
415c66ec88fSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
416c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
417c66ec88fSEmmanuel Vadot	clock-latency = <50000>;
418c66ec88fSEmmanuel Vadot};
419c66ec88fSEmmanuel Vadot
420c66ec88fSEmmanuel Vadot&cpu2 {
421c66ec88fSEmmanuel Vadot	cpu-supply = <&vddcpu>;
422c66ec88fSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
423c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
424c66ec88fSEmmanuel Vadot	clock-latency = <50000>;
425c66ec88fSEmmanuel Vadot};
426c66ec88fSEmmanuel Vadot
427c66ec88fSEmmanuel Vadot&cpu3 {
428c66ec88fSEmmanuel Vadot	cpu-supply = <&vddcpu>;
429c66ec88fSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table>;
430c66ec88fSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
431c66ec88fSEmmanuel Vadot	clock-latency = <50000>;
432c66ec88fSEmmanuel Vadot};
433c66ec88fSEmmanuel Vadot
43484943d6fSEmmanuel Vadot&clkc_audio {
43584943d6fSEmmanuel Vadot	status = "okay";
43684943d6fSEmmanuel Vadot};
43784943d6fSEmmanuel Vadot
438c66ec88fSEmmanuel Vadot&cvbs_vdac_port {
439c66ec88fSEmmanuel Vadot	cvbs_vdac_out: endpoint {
440c66ec88fSEmmanuel Vadot		remote-endpoint = <&cvbs_connector_in>;
441c66ec88fSEmmanuel Vadot	};
442c66ec88fSEmmanuel Vadot};
443c66ec88fSEmmanuel Vadot
444c66ec88fSEmmanuel Vadot&ethmac {
445c66ec88fSEmmanuel Vadot	status = "okay";
446c66ec88fSEmmanuel Vadot	phy-handle = <&internal_ephy>;
447c66ec88fSEmmanuel Vadot	phy-mode = "rmii";
448c66ec88fSEmmanuel Vadot};
449c66ec88fSEmmanuel Vadot
45084943d6fSEmmanuel Vadot&frddr_a {
45184943d6fSEmmanuel Vadot	status = "okay";
45284943d6fSEmmanuel Vadot};
45384943d6fSEmmanuel Vadot
45484943d6fSEmmanuel Vadot&frddr_b {
45584943d6fSEmmanuel Vadot	status = "okay";
45684943d6fSEmmanuel Vadot};
45784943d6fSEmmanuel Vadot
45884943d6fSEmmanuel Vadot&frddr_c {
45984943d6fSEmmanuel Vadot	status = "okay";
46084943d6fSEmmanuel Vadot};
46184943d6fSEmmanuel Vadot
462c66ec88fSEmmanuel Vadot&hdmi_tx {
463c66ec88fSEmmanuel Vadot	status = "okay";
464c66ec88fSEmmanuel Vadot	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
465c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
466c66ec88fSEmmanuel Vadot	hdmi-supply = <&vcc_5v>;
467c66ec88fSEmmanuel Vadot};
468c66ec88fSEmmanuel Vadot
469c66ec88fSEmmanuel Vadot&hdmi_tx_tmds_port {
470c66ec88fSEmmanuel Vadot	hdmi_tx_tmds_out: endpoint {
471c66ec88fSEmmanuel Vadot		remote-endpoint = <&hdmi_connector_in>;
472c66ec88fSEmmanuel Vadot	};
473c66ec88fSEmmanuel Vadot};
474c66ec88fSEmmanuel Vadot
475c66ec88fSEmmanuel Vadot&ir {
476c66ec88fSEmmanuel Vadot	status = "okay";
477c66ec88fSEmmanuel Vadot	pinctrl-0 = <&remote_input_ao_pins>;
478c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
479c66ec88fSEmmanuel Vadot};
480c66ec88fSEmmanuel Vadot
481c66ec88fSEmmanuel Vadot/* i2c Touch */
482c66ec88fSEmmanuel Vadot&i2c0 {
483c66ec88fSEmmanuel Vadot	status = "okay";
484c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
485c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
486c66ec88fSEmmanuel Vadot};
487c66ec88fSEmmanuel Vadot
488c66ec88fSEmmanuel Vadot/* i2c CM */
489c66ec88fSEmmanuel Vadot&i2c2 {
490c66ec88fSEmmanuel Vadot	status = "okay";
491c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
492c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
493c66ec88fSEmmanuel Vadot};
494c66ec88fSEmmanuel Vadot
495c66ec88fSEmmanuel Vadot/* i2c Audio */
496c66ec88fSEmmanuel Vadot&i2c3 {
497c66ec88fSEmmanuel Vadot	status = "okay";
498c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
499c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
500c66ec88fSEmmanuel Vadot};
501c66ec88fSEmmanuel Vadot
502c66ec88fSEmmanuel Vadot&pwm_AO_cd {
503c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pwm_ao_d_e_pins>;
504c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
505c66ec88fSEmmanuel Vadot	clocks = <&xtal>;
506c66ec88fSEmmanuel Vadot	clock-names = "clkin1";
507c66ec88fSEmmanuel Vadot	status = "okay";
508c66ec88fSEmmanuel Vadot};
509c66ec88fSEmmanuel Vadot
510c66ec88fSEmmanuel Vadot/* SD card */
511c66ec88fSEmmanuel Vadot&sd_emmc_b {
512c66ec88fSEmmanuel Vadot	status = "okay";
513c66ec88fSEmmanuel Vadot	pinctrl-0 = <&sdcard_c_pins>;
514c66ec88fSEmmanuel Vadot	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
515c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
516c66ec88fSEmmanuel Vadot
517c66ec88fSEmmanuel Vadot	bus-width = <4>;
518c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
519c66ec88fSEmmanuel Vadot	max-frequency = <50000000>;
520c66ec88fSEmmanuel Vadot	disable-wp;
521c66ec88fSEmmanuel Vadot
522c66ec88fSEmmanuel Vadot	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
523c66ec88fSEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
524c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vddao_3v3>;
525c66ec88fSEmmanuel Vadot};
526c66ec88fSEmmanuel Vadot
527c66ec88fSEmmanuel Vadot/* eMMC */
528c66ec88fSEmmanuel Vadot&sd_emmc_c {
529c66ec88fSEmmanuel Vadot	status = "okay";
530c66ec88fSEmmanuel Vadot	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
531c66ec88fSEmmanuel Vadot	pinctrl-1 = <&emmc_clk_gate_pins>;
532c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
533c66ec88fSEmmanuel Vadot
534c66ec88fSEmmanuel Vadot	bus-width = <8>;
535c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
536c66ec88fSEmmanuel Vadot	mmc-ddr-1_8v;
537c66ec88fSEmmanuel Vadot	mmc-hs200-1_8v;
538c66ec88fSEmmanuel Vadot	max-frequency = <200000000>;
539c66ec88fSEmmanuel Vadot	non-removable;
540c66ec88fSEmmanuel Vadot	disable-wp;
541c66ec88fSEmmanuel Vadot
542c66ec88fSEmmanuel Vadot	mmc-pwrseq = <&emmc_pwrseq>;
543c66ec88fSEmmanuel Vadot	vmmc-supply = <&vcc_3v3>;
544c66ec88fSEmmanuel Vadot	vqmmc-supply = <&flash_1v8>;
545c66ec88fSEmmanuel Vadot};
546c66ec88fSEmmanuel Vadot
54784943d6fSEmmanuel Vadot&spdifin {
54884943d6fSEmmanuel Vadot	pinctrl-0 = <&spdif_in_h_pins>;
54984943d6fSEmmanuel Vadot	pinctrl-names = "default";
55084943d6fSEmmanuel Vadot	status = "okay";
55184943d6fSEmmanuel Vadot};
55284943d6fSEmmanuel Vadot
55384943d6fSEmmanuel Vadot&spdifout_a {
55484943d6fSEmmanuel Vadot	pinctrl-0 = <&spdif_ao_out_pins>;
55584943d6fSEmmanuel Vadot	pinctrl-names = "default";
55684943d6fSEmmanuel Vadot	status = "okay";
55784943d6fSEmmanuel Vadot};
55884943d6fSEmmanuel Vadot
55984943d6fSEmmanuel Vadot&spdifout_b {
56084943d6fSEmmanuel Vadot	status = "okay";
56184943d6fSEmmanuel Vadot};
56284943d6fSEmmanuel Vadot
56384943d6fSEmmanuel Vadot&tdmif_a {
56484943d6fSEmmanuel Vadot	pinctrl-0 = <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>, <&tdm_a_dout0_pins> ;
56584943d6fSEmmanuel Vadot	pinctrl-names = "default";
56684943d6fSEmmanuel Vadot	status = "okay";
56784943d6fSEmmanuel Vadot};
56884943d6fSEmmanuel Vadot
56984943d6fSEmmanuel Vadot&tdmif_b {
57084943d6fSEmmanuel Vadot	pinctrl-0 = <&mclk0_a_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>,
57184943d6fSEmmanuel Vadot		    <&tdm_b_dout0_pins>;
57284943d6fSEmmanuel Vadot	pinctrl-names = "default";
57384943d6fSEmmanuel Vadot	status = "okay";
57484943d6fSEmmanuel Vadot
57584943d6fSEmmanuel Vadot	assigned-clocks = <&clkc_audio AUD_CLKID_TDM_MCLK_PAD0>,
57684943d6fSEmmanuel Vadot			  <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>,
57784943d6fSEmmanuel Vadot			  <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
57884943d6fSEmmanuel Vadot	assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
57984943d6fSEmmanuel Vadot				 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
58084943d6fSEmmanuel Vadot				 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
58184943d6fSEmmanuel Vadot	assigned-clock-rates = <0>, <0>, <0>;
58284943d6fSEmmanuel Vadot};
58384943d6fSEmmanuel Vadot
58484943d6fSEmmanuel Vadot&tdmif_c {
58584943d6fSEmmanuel Vadot	status = "okay";
58684943d6fSEmmanuel Vadot};
58784943d6fSEmmanuel Vadot
58884943d6fSEmmanuel Vadot&tdmin_a {
58984943d6fSEmmanuel Vadot	status = "okay";
59084943d6fSEmmanuel Vadot};
59184943d6fSEmmanuel Vadot
59284943d6fSEmmanuel Vadot&tdmin_b {
59384943d6fSEmmanuel Vadot	status = "okay";
59484943d6fSEmmanuel Vadot};
59584943d6fSEmmanuel Vadot
59684943d6fSEmmanuel Vadot&tdmin_c {
59784943d6fSEmmanuel Vadot	status = "okay";
59884943d6fSEmmanuel Vadot};
59984943d6fSEmmanuel Vadot
60084943d6fSEmmanuel Vadot&tdmin_lb {
60184943d6fSEmmanuel Vadot	status = "okay";
60284943d6fSEmmanuel Vadot};
60384943d6fSEmmanuel Vadot
60484943d6fSEmmanuel Vadot&tdmout_a {
60584943d6fSEmmanuel Vadot	status = "okay";
60684943d6fSEmmanuel Vadot};
60784943d6fSEmmanuel Vadot
60884943d6fSEmmanuel Vadot&tdmout_b {
60984943d6fSEmmanuel Vadot	status = "okay";
61084943d6fSEmmanuel Vadot};
61184943d6fSEmmanuel Vadot
61284943d6fSEmmanuel Vadot&tdmout_c {
61384943d6fSEmmanuel Vadot	status = "okay";
61484943d6fSEmmanuel Vadot};
61584943d6fSEmmanuel Vadot
61684943d6fSEmmanuel Vadot&toacodec {
61784943d6fSEmmanuel Vadot	status = "okay";
61884943d6fSEmmanuel Vadot};
61984943d6fSEmmanuel Vadot
62084943d6fSEmmanuel Vadot&toddr_a {
62184943d6fSEmmanuel Vadot	status = "okay";
62284943d6fSEmmanuel Vadot};
62384943d6fSEmmanuel Vadot
62484943d6fSEmmanuel Vadot&toddr_b {
62584943d6fSEmmanuel Vadot	status = "okay";
62684943d6fSEmmanuel Vadot};
62784943d6fSEmmanuel Vadot
62884943d6fSEmmanuel Vadot&toddr_c {
62984943d6fSEmmanuel Vadot	status = "okay";
63084943d6fSEmmanuel Vadot};
63184943d6fSEmmanuel Vadot
63284943d6fSEmmanuel Vadot&tohdmitx {
63384943d6fSEmmanuel Vadot	status = "okay";
63484943d6fSEmmanuel Vadot};
63584943d6fSEmmanuel Vadot
636c66ec88fSEmmanuel Vadot&uart_AO {
637c66ec88fSEmmanuel Vadot	status = "okay";
638c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart_ao_a_pins>;
639c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
640c66ec88fSEmmanuel Vadot};
641c66ec88fSEmmanuel Vadot
642c66ec88fSEmmanuel Vadot&usb {
643c66ec88fSEmmanuel Vadot	status = "okay";
644c66ec88fSEmmanuel Vadot	vbus-supply = <&usb_pwr_en>;
645c66ec88fSEmmanuel Vadot};
646c66ec88fSEmmanuel Vadot
647c66ec88fSEmmanuel Vadot&usb2_phy0 {
648c66ec88fSEmmanuel Vadot	phy-supply = <&vcc_5v>;
649c66ec88fSEmmanuel Vadot};
650c66ec88fSEmmanuel Vadot
651c66ec88fSEmmanuel Vadot&usb2_phy1 {
652c66ec88fSEmmanuel Vadot	phy-supply = <&vcc_5v>;
653c66ec88fSEmmanuel Vadot};
654