1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29d59b708SYixun Lan/*
39d59b708SYixun Lan * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
49d59b708SYixun Lan */
59d59b708SYixun Lan
69d59b708SYixun Lan/dts-v1/;
79d59b708SYixun Lan
89d59b708SYixun Lan#include "meson-axg.dtsi"
9aabe5d2dSJerome Brunet#include <dt-bindings/input/input.h>
109d59b708SYixun Lan
119d59b708SYixun Lan/ {
129d59b708SYixun Lan	compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
139d59b708SYixun Lan	model = "Amlogic Meson AXG S400 Development Board";
149d59b708SYixun Lan
15aabe5d2dSJerome Brunet	adc_keys {
16aabe5d2dSJerome Brunet		compatible = "adc-keys";
17aabe5d2dSJerome Brunet		io-channels = <&saradc 0>;
18aabe5d2dSJerome Brunet		io-channel-names = "buttons";
19aabe5d2dSJerome Brunet		keyup-threshold-microvolt = <1800000>;
20aabe5d2dSJerome Brunet
21aabe5d2dSJerome Brunet		button-next {
22aabe5d2dSJerome Brunet			label = "Next";
23aabe5d2dSJerome Brunet			linux,code = <KEY_NEXT>;
24aabe5d2dSJerome Brunet			press-threshold-microvolt = <1116000>; /* 62% */
25aabe5d2dSJerome Brunet		};
26aabe5d2dSJerome Brunet
27aabe5d2dSJerome Brunet		button-prev {
28aabe5d2dSJerome Brunet			label = "Previous";
29aabe5d2dSJerome Brunet			linux,code = <KEY_PREVIOUS>;
30aabe5d2dSJerome Brunet			press-threshold-microvolt = <900000>; /* 50% */
31aabe5d2dSJerome Brunet		};
32aabe5d2dSJerome Brunet
33aabe5d2dSJerome Brunet		button-wifi {
34aabe5d2dSJerome Brunet			label = "Wifi";
35aabe5d2dSJerome Brunet			linux,code = <KEY_WLAN>;
36aabe5d2dSJerome Brunet			press-threshold-microvolt = <684000>; /* 38% */
37aabe5d2dSJerome Brunet		};
38aabe5d2dSJerome Brunet
39aabe5d2dSJerome Brunet		button-up {
40aabe5d2dSJerome Brunet			label = "Volume Up";
41aabe5d2dSJerome Brunet			linux,code = <KEY_VOLUMEUP>;
42aabe5d2dSJerome Brunet			press-threshold-microvolt = <468000>; /* 26% */
43aabe5d2dSJerome Brunet		};
44aabe5d2dSJerome Brunet
45aabe5d2dSJerome Brunet		button-down {
46aabe5d2dSJerome Brunet			label = "Volume Down";
47aabe5d2dSJerome Brunet			linux,code = <KEY_VOLUMEDOWN>;
48aabe5d2dSJerome Brunet			press-threshold-microvolt = <252000>; /* 14% */
49aabe5d2dSJerome Brunet		};
50aabe5d2dSJerome Brunet
51aabe5d2dSJerome Brunet		button-voice {
52aabe5d2dSJerome Brunet			label = "Voice";
53aabe5d2dSJerome Brunet			linux,code = <KEY_VOICECOMMAND>;
54aabe5d2dSJerome Brunet			press-threshold-microvolt = <0>; /* 0% */
55aabe5d2dSJerome Brunet		};
56aabe5d2dSJerome Brunet	};
57aabe5d2dSJerome Brunet
589d59b708SYixun Lan	aliases {
599d59b708SYixun Lan		serial0 = &uart_AO;
603e5925c6SYixun Lan		serial1 = &uart_A;
619d59b708SYixun Lan	};
62221cf34bSNan Li
638c0cf40fSJerome Brunet	linein: audio-codec@0 {
648c0cf40fSJerome Brunet		#sound-dai-cells = <0>;
658c0cf40fSJerome Brunet		compatible = "everest,es7241";
668c0cf40fSJerome Brunet		VDDA-supply = <&vcc_3v3>;
678c0cf40fSJerome Brunet		VDDP-supply = <&vcc_3v3>;
688c0cf40fSJerome Brunet		VDDD-supply = <&vcc_3v3>;
698c0cf40fSJerome Brunet		status = "okay";
708c0cf40fSJerome Brunet		sound-name-prefix = "Linein";
718c0cf40fSJerome Brunet	};
728c0cf40fSJerome Brunet
738c0cf40fSJerome Brunet	lineout: audio-codec@1 {
748c0cf40fSJerome Brunet		#sound-dai-cells = <0>;
758c0cf40fSJerome Brunet		compatible = "everest,es7154";
768c0cf40fSJerome Brunet		VDD-supply = <&vcc_3v3>;
778c0cf40fSJerome Brunet		PVDD-supply = <&vcc_5v>;
788c0cf40fSJerome Brunet		status = "okay";
798c0cf40fSJerome Brunet		sound-name-prefix = "Lineout";
808c0cf40fSJerome Brunet	};
818c0cf40fSJerome Brunet
828c0cf40fSJerome Brunet	spdif_dit: audio-codec@2 {
838c0cf40fSJerome Brunet		#sound-dai-cells = <0>;
848c0cf40fSJerome Brunet		compatible = "linux,spdif-dit";
858c0cf40fSJerome Brunet		status = "okay";
868c0cf40fSJerome Brunet		sound-name-prefix = "DIT";
878c0cf40fSJerome Brunet	};
888c0cf40fSJerome Brunet
898c0cf40fSJerome Brunet	emmc_pwrseq: emmc-pwrseq {
908c0cf40fSJerome Brunet		compatible = "mmc-pwrseq-emmc";
918c0cf40fSJerome Brunet		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
928c0cf40fSJerome Brunet	};
938c0cf40fSJerome Brunet
94e120289cSJerome Brunet	main_12v: regulator-main_12v {
95e120289cSJerome Brunet		compatible = "regulator-fixed";
96e120289cSJerome Brunet		regulator-name = "12V";
97e120289cSJerome Brunet		regulator-min-microvolt = <12000000>;
98e120289cSJerome Brunet		regulator-max-microvolt = <12000000>;
999f2619d5SJerome Brunet		regulator-always-on;
100e120289cSJerome Brunet	};
101e120289cSJerome Brunet
102221cf34bSNan Li	vcc_3v3: regulator-vcc_3v3 {
103221cf34bSNan Li		compatible = "regulator-fixed";
104221cf34bSNan Li		regulator-name = "VCC_3V3";
105221cf34bSNan Li		regulator-min-microvolt = <3300000>;
106221cf34bSNan Li		regulator-max-microvolt = <3300000>;
1079f2619d5SJerome Brunet		vin-supply = <&vddao_3v3>;
1089f2619d5SJerome Brunet		regulator-always-on;
109221cf34bSNan Li	};
110221cf34bSNan Li
111ff36932eSJerome Brunet	vcc_5v: regulator-vcc_5v {
112ff36932eSJerome Brunet		compatible = "regulator-fixed";
113ff36932eSJerome Brunet		regulator-name = "VCC5V";
114ff36932eSJerome Brunet		regulator-min-microvolt = <5000000>;
115ff36932eSJerome Brunet		regulator-max-microvolt = <5000000>;
116ff36932eSJerome Brunet		vin-supply = <&main_12v>;
117ff36932eSJerome Brunet
118ff36932eSJerome Brunet		gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
119ff36932eSJerome Brunet		enable-active-high;
120ff36932eSJerome Brunet	};
121ff36932eSJerome Brunet
1228c0cf40fSJerome Brunet	vddao_3v3: regulator-vddao_3v3 {
1238c0cf40fSJerome Brunet		compatible = "regulator-fixed";
1248c0cf40fSJerome Brunet		regulator-name = "VDDAO_3V3";
1258c0cf40fSJerome Brunet		regulator-min-microvolt = <3300000>;
1268c0cf40fSJerome Brunet		regulator-max-microvolt = <3300000>;
1278c0cf40fSJerome Brunet		vin-supply = <&main_12v>;
1288c0cf40fSJerome Brunet		regulator-always-on;
1298c0cf40fSJerome Brunet	};
1308c0cf40fSJerome Brunet
1318c0cf40fSJerome Brunet	vddio_ao18: regulator-vddio_ao18 {
1328c0cf40fSJerome Brunet		compatible = "regulator-fixed";
1338c0cf40fSJerome Brunet		regulator-name = "VDDIO_AO18";
1348c0cf40fSJerome Brunet		regulator-min-microvolt = <1800000>;
1358c0cf40fSJerome Brunet		regulator-max-microvolt = <1800000>;
1368c0cf40fSJerome Brunet		vin-supply = <&vddao_3v3>;
1378c0cf40fSJerome Brunet		regulator-always-on;
1388c0cf40fSJerome Brunet	};
1398c0cf40fSJerome Brunet
1408c0cf40fSJerome Brunet	vddio_boot: regulator-vddio_boot {
1418c0cf40fSJerome Brunet		compatible = "regulator-fixed";
1428c0cf40fSJerome Brunet		regulator-name = "VDDIO_BOOT";
1438c0cf40fSJerome Brunet		regulator-min-microvolt = <1800000>;
1448c0cf40fSJerome Brunet		regulator-max-microvolt = <1800000>;
1458c0cf40fSJerome Brunet		vin-supply = <&vddao_3v3>;
1468c0cf40fSJerome Brunet		regulator-always-on;
1478c0cf40fSJerome Brunet	};
1488c0cf40fSJerome Brunet
149fd1a3b7eSJerome Brunet	usb_pwr: regulator-usb_pwr {
150fd1a3b7eSJerome Brunet		compatible = "regulator-fixed";
151fd1a3b7eSJerome Brunet		regulator-name = "USB_PWR";
152fd1a3b7eSJerome Brunet		regulator-min-microvolt = <5000000>;
153fd1a3b7eSJerome Brunet		regulator-max-microvolt = <5000000>;
154fd1a3b7eSJerome Brunet		vin-supply = <&vcc_5v>;
155fd1a3b7eSJerome Brunet
156fd1a3b7eSJerome Brunet		gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
157fd1a3b7eSJerome Brunet		enable-active-high;
158221cf34bSNan Li	};
159221cf34bSNan Li
1605a8a2ed6SYixun Lan	sdio_pwrseq: sdio-pwrseq {
1615a8a2ed6SYixun Lan		compatible = "mmc-pwrseq-simple";
1625a8a2ed6SYixun Lan		reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
1635a8a2ed6SYixun Lan		clocks = <&wifi32k>;
1645a8a2ed6SYixun Lan		clock-names = "ext_clock";
1655a8a2ed6SYixun Lan	};
1665a8a2ed6SYixun Lan
1676279f666SJerome Brunet	speaker-leds {
1686279f666SJerome Brunet		compatible = "gpio-leds";
1696279f666SJerome Brunet
1706279f666SJerome Brunet		aled1 {
1716279f666SJerome Brunet			label = "speaker:aled1";
1726279f666SJerome Brunet			gpios = <&gpio_speaker 7 0>;
1736279f666SJerome Brunet		};
1746279f666SJerome Brunet
1756279f666SJerome Brunet		aled2 {
1766279f666SJerome Brunet			label = "speaker:aled2";
1776279f666SJerome Brunet			gpios = <&gpio_speaker 6 0>;
1786279f666SJerome Brunet		};
1796279f666SJerome Brunet
1806279f666SJerome Brunet		aled3 {
1816279f666SJerome Brunet			label = "speaker:aled3";
1826279f666SJerome Brunet			gpios = <&gpio_speaker 5 0>;
1836279f666SJerome Brunet		};
1846279f666SJerome Brunet
1856279f666SJerome Brunet		aled4 {
1866279f666SJerome Brunet			label = "speaker:aled4";
1876279f666SJerome Brunet			gpios = <&gpio_speaker 4 0>;
1886279f666SJerome Brunet		};
1896279f666SJerome Brunet
1906279f666SJerome Brunet		aled5 {
1916279f666SJerome Brunet			label = "speaker:aled5";
1926279f666SJerome Brunet			gpios = <&gpio_speaker 3 0>;
1936279f666SJerome Brunet		};
1946279f666SJerome Brunet
1956279f666SJerome Brunet		aled6 {
1966279f666SJerome Brunet			label = "speaker:aled6";
1976279f666SJerome Brunet			gpios = <&gpio_speaker 2 0>;
1986279f666SJerome Brunet		};
1996279f666SJerome Brunet	};
200cfc34f04SJerome Brunet
2016f59dc1aSJerome Brunet	sound {
2026f59dc1aSJerome Brunet		compatible = "amlogic,axg-sound-card";
2036f59dc1aSJerome Brunet		model = "AXG-S400";
2046f59dc1aSJerome Brunet		audio-aux-devs = <&tdmin_a>, <&tdmin_b>,  <&tdmin_c>,
2056f59dc1aSJerome Brunet				 <&tdmin_lb>, <&tdmout_c>;
2066f59dc1aSJerome Brunet		audio-widgets = "Line", "Lineout",
2076f59dc1aSJerome Brunet				"Line", "Linein",
2086f59dc1aSJerome Brunet				"Speaker", "Speaker1 Left",
2096f59dc1aSJerome Brunet				"Speaker", "Speaker1 Right";
2106f59dc1aSJerome Brunet		audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
2116f59dc1aSJerome Brunet				"SPDIFOUT IN 0", "FRDDR_A OUT 3",
2126f59dc1aSJerome Brunet				"TDMOUT_C IN 1", "FRDDR_B OUT 2",
2136f59dc1aSJerome Brunet				"SPDIFOUT IN 1", "FRDDR_B OUT 3",
2146f59dc1aSJerome Brunet				"TDMOUT_C IN 2", "FRDDR_C OUT 2",
2156f59dc1aSJerome Brunet				"SPDIFOUT IN 2", "FRDDR_C OUT 3",
2166f59dc1aSJerome Brunet				"TDM_C Playback", "TDMOUT_C OUT",
2176f59dc1aSJerome Brunet				"TDMIN_A IN 2", "TDM_C Capture",
2186f59dc1aSJerome Brunet				"TDMIN_A IN 5", "TDM_C Loopback",
2196f59dc1aSJerome Brunet				"TDMIN_B IN 2", "TDM_C Capture",
2206f59dc1aSJerome Brunet				"TDMIN_B IN 5", "TDM_C Loopback",
2216f59dc1aSJerome Brunet				"TDMIN_C IN 2", "TDM_C Capture",
2226f59dc1aSJerome Brunet				"TDMIN_C IN 5", "TDM_C Loopback",
2236f59dc1aSJerome Brunet				"TDMIN_LB IN 2", "TDM_C Loopback",
2246f59dc1aSJerome Brunet				"TDMIN_LB IN 5", "TDM_C Capture",
2256f59dc1aSJerome Brunet				"TODDR_A IN 0", "TDMIN_A OUT",
2266f59dc1aSJerome Brunet				"TODDR_B IN 0", "TDMIN_A OUT",
2276f59dc1aSJerome Brunet				"TODDR_C IN 0", "TDMIN_A OUT",
2286f59dc1aSJerome Brunet				"TODDR_A IN 1", "TDMIN_B OUT",
2296f59dc1aSJerome Brunet				"TODDR_B IN 1", "TDMIN_B OUT",
2306f59dc1aSJerome Brunet				"TODDR_C IN 1", "TDMIN_B OUT",
2316f59dc1aSJerome Brunet				"TODDR_A IN 2", "TDMIN_C OUT",
2326f59dc1aSJerome Brunet				"TODDR_B IN 2", "TDMIN_C OUT",
2336f59dc1aSJerome Brunet				"TODDR_C IN 2", "TDMIN_C OUT",
2346f59dc1aSJerome Brunet				"TODDR_A IN 6", "TDMIN_LB OUT",
2356f59dc1aSJerome Brunet				"TODDR_B IN 6", "TDMIN_LB OUT",
2366f59dc1aSJerome Brunet				"TODDR_C IN 6", "TDMIN_LB OUT",
2376f59dc1aSJerome Brunet				"Lineout", "Lineout AOUTL",
2386f59dc1aSJerome Brunet				"Lineout", "Lineout AOUTR",
2396f59dc1aSJerome Brunet				"Speaker1 Left", "SPK1 OUT_A",
2406f59dc1aSJerome Brunet				"Speaker1 Left", "SPK1 OUT_B",
2416f59dc1aSJerome Brunet				"Speaker1 Right", "SPK1 OUT_C",
2426f59dc1aSJerome Brunet				"Speaker1 Right", "SPK1 OUT_D",
2436f59dc1aSJerome Brunet				"Linein AINL", "Linein",
2446f59dc1aSJerome Brunet				"Linein AINR", "Linein";
2456f59dc1aSJerome Brunet		assigned-clocks = <&clkc CLKID_HIFI_PLL>,
2466f59dc1aSJerome Brunet				  <&clkc CLKID_MPLL0>,
2476f59dc1aSJerome Brunet				  <&clkc CLKID_MPLL1>;
2486f59dc1aSJerome Brunet		assigned-clock-parents = <0>, <0>, <0>;
2496f59dc1aSJerome Brunet		assigned-clock-rates = <589824000>,
2506f59dc1aSJerome Brunet				       <270950400>,
2516f59dc1aSJerome Brunet				       <393216000>;
2526f59dc1aSJerome Brunet		status = "okay";
2536f59dc1aSJerome Brunet
2546f59dc1aSJerome Brunet		dai-link@0 {
2556f59dc1aSJerome Brunet			sound-dai = <&frddr_a>;
2566f59dc1aSJerome Brunet		};
2576f59dc1aSJerome Brunet
2586f59dc1aSJerome Brunet		dai-link@1 {
2596f59dc1aSJerome Brunet			sound-dai = <&frddr_b>;
2606f59dc1aSJerome Brunet		};
2616f59dc1aSJerome Brunet
2626f59dc1aSJerome Brunet		dai-link@2 {
2636f59dc1aSJerome Brunet			sound-dai = <&frddr_c>;
2646f59dc1aSJerome Brunet		};
2656f59dc1aSJerome Brunet
2666f59dc1aSJerome Brunet		dai-link@3 {
2676f59dc1aSJerome Brunet			sound-dai = <&toddr_a>;
2686f59dc1aSJerome Brunet		};
2696f59dc1aSJerome Brunet
2706f59dc1aSJerome Brunet		dai-link@4 {
2716f59dc1aSJerome Brunet			sound-dai = <&toddr_b>;
2726f59dc1aSJerome Brunet		};
2736f59dc1aSJerome Brunet
2746f59dc1aSJerome Brunet		dai-link@5 {
2756f59dc1aSJerome Brunet			sound-dai = <&toddr_c>;
2766f59dc1aSJerome Brunet		};
2776f59dc1aSJerome Brunet
2786f59dc1aSJerome Brunet		dai-link@6 {
2796f59dc1aSJerome Brunet			sound-dai = <&tdmif_c>;
2806f59dc1aSJerome Brunet			dai-format = "i2s";
2816f59dc1aSJerome Brunet			dai-tdm-slot-tx-mask-2 = <1 1>;
2826f59dc1aSJerome Brunet			dai-tdm-slot-rx-mask-1 = <1 1>;
2836f59dc1aSJerome Brunet			mclk-fs = <256>;
2846f59dc1aSJerome Brunet
2856f59dc1aSJerome Brunet			codec@0 {
2866f59dc1aSJerome Brunet				sound-dai = <&lineout>;
2876f59dc1aSJerome Brunet			};
2886f59dc1aSJerome Brunet
2896f59dc1aSJerome Brunet			codec@1 {
2906f59dc1aSJerome Brunet				sound-dai = <&speaker_amp1>;
2916f59dc1aSJerome Brunet			};
2926f59dc1aSJerome Brunet
2936f59dc1aSJerome Brunet			codec@2 {
2946f59dc1aSJerome Brunet				sound-dai = <&linein>;
2956f59dc1aSJerome Brunet			};
2966f59dc1aSJerome Brunet
2976f59dc1aSJerome Brunet		};
2986f59dc1aSJerome Brunet
2996f59dc1aSJerome Brunet		dai-link@7 {
3006f59dc1aSJerome Brunet			sound-dai = <&spdifout>;
3016f59dc1aSJerome Brunet
3026f59dc1aSJerome Brunet			codec {
3036f59dc1aSJerome Brunet				sound-dai = <&spdif_dit>;
3046f59dc1aSJerome Brunet			};
3056f59dc1aSJerome Brunet		};
3066f59dc1aSJerome Brunet	};
3078c0cf40fSJerome Brunet
3088c0cf40fSJerome Brunet	wifi32k: wifi32k {
3098c0cf40fSJerome Brunet		compatible = "pwm-clock";
3108c0cf40fSJerome Brunet		#clock-cells = <0>;
3118c0cf40fSJerome Brunet		clock-frequency = <32768>;
3128c0cf40fSJerome Brunet		pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
3138c0cf40fSJerome Brunet	};
3149d59b708SYixun Lan};
3159d59b708SYixun Lan
316f6f6ac91SYixun Lan&ethmac {
317f6f6ac91SYixun Lan	status = "okay";
318f6f6ac91SYixun Lan	pinctrl-0 = <&eth_rgmii_y_pins>;
319f6f6ac91SYixun Lan	pinctrl-names = "default";
3206d28d577SJerome Brunet	phy-handle = <&eth_phy0>;
3216d28d577SJerome Brunet	phy-mode = "rgmii";
3226d28d577SJerome Brunet
3236d28d577SJerome Brunet	mdio {
3246d28d577SJerome Brunet		compatible = "snps,dwmac-mdio";
3256d28d577SJerome Brunet		#address-cells = <1>;
3266d28d577SJerome Brunet		#size-cells = <0>;
3276d28d577SJerome Brunet
3286d28d577SJerome Brunet		eth_phy0: ethernet-phy@0 {
3296d28d577SJerome Brunet			/* Realtek RTL8211F (0x001cc916) */
3306d28d577SJerome Brunet			reg = <0>;
3316d28d577SJerome Brunet			eee-broken-1000t;
3326d28d577SJerome Brunet		};
3336d28d577SJerome Brunet	};
334f6f6ac91SYixun Lan};
335f6f6ac91SYixun Lan
336a0ef1c1cSJerome Brunet&frddr_a {
337a0ef1c1cSJerome Brunet	status = "okay";
338a0ef1c1cSJerome Brunet};
339a0ef1c1cSJerome Brunet
340a0ef1c1cSJerome Brunet&frddr_b {
341a0ef1c1cSJerome Brunet	status = "okay";
342a0ef1c1cSJerome Brunet};
343a0ef1c1cSJerome Brunet
344a0ef1c1cSJerome Brunet&frddr_c {
345a0ef1c1cSJerome Brunet	status = "okay";
346a0ef1c1cSJerome Brunet};
347a0ef1c1cSJerome Brunet
3487bd46a79SYixun Lan&ir {
3497bd46a79SYixun Lan	status = "okay";
3507bd46a79SYixun Lan	pinctrl-0 = <&remote_input_ao_pins>;
3517bd46a79SYixun Lan	pinctrl-names = "default";
3527bd46a79SYixun Lan};
3537d6d8a20SJian Hu
3547d6d8a20SJian Hu&i2c1 {
3557d6d8a20SJian Hu	status = "okay";
3567d6d8a20SJian Hu	pinctrl-0 = <&i2c1_z_pins>;
3577d6d8a20SJian Hu	pinctrl-names = "default";
358a90193b9SJerome Brunet
359a90193b9SJerome Brunet	speaker_amp1: audio-codec@1b {
360a90193b9SJerome Brunet		compatible = "ti,tas5707";
361a90193b9SJerome Brunet		reg = <0x1b>;
362a90193b9SJerome Brunet		reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
363a90193b9SJerome Brunet		#sound-dai-cells = <0>;
364a90193b9SJerome Brunet		AVDD-supply = <&vcc_3v3>;
365a90193b9SJerome Brunet		DVDD-supply = <&vcc_3v3>;
366a90193b9SJerome Brunet		PVDD_A-supply = <&main_12v>;
367a90193b9SJerome Brunet		PVDD_B-supply = <&main_12v>;
368a90193b9SJerome Brunet		PVDD_C-supply = <&main_12v>;
369a90193b9SJerome Brunet		PVDD_D-supply = <&main_12v>;
3706f59dc1aSJerome Brunet		sound-name-prefix = "SPK1";
371a90193b9SJerome Brunet	};
3727d6d8a20SJian Hu};
373221cf34bSNan Li
374ffe2f2a4SJerome Brunet&i2c_AO {
375ffe2f2a4SJerome Brunet	status = "okay";
376ffe2f2a4SJerome Brunet	pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
377ffe2f2a4SJerome Brunet	pinctrl-names = "default";
3786279f666SJerome Brunet
3796279f666SJerome Brunet	gpio_speaker: gpio-controller@1f {
3806279f666SJerome Brunet		compatible = "nxp,pca9557";
3816279f666SJerome Brunet		reg = <0x1f>;
3826279f666SJerome Brunet		gpio-controller;
3836279f666SJerome Brunet		#gpio-cells = <2>;
3846279f666SJerome Brunet		vcc-supply = <&vddao_3v3>;
3856279f666SJerome Brunet	};
386ffe2f2a4SJerome Brunet};
387ffe2f2a4SJerome Brunet
3885a8a2ed6SYixun Lan&pwm_ab {
3895a8a2ed6SYixun Lan	status = "okay";
3905a8a2ed6SYixun Lan	pinctrl-0 = <&pwm_a_x20_pins>;
3915a8a2ed6SYixun Lan	pinctrl-names = "default";
3925a8a2ed6SYixun Lan};
3935a8a2ed6SYixun Lan
3948c0cf40fSJerome Brunet&saradc {
395221cf34bSNan Li	status = "okay";
3968c0cf40fSJerome Brunet	vref-supply = <&vddio_ao18>;
397221cf34bSNan Li};
3985a8a2ed6SYixun Lan
3995a8a2ed6SYixun Lan/* wifi module */
4005a8a2ed6SYixun Lan&sd_emmc_b {
4015a8a2ed6SYixun Lan	status = "okay";
4025a8a2ed6SYixun Lan	#address-cells = <1>;
4035a8a2ed6SYixun Lan	#size-cells = <0>;
4045a8a2ed6SYixun Lan
4055a8a2ed6SYixun Lan	pinctrl-0 = <&sdio_pins>;
4065a8a2ed6SYixun Lan	pinctrl-1 = <&sdio_clk_gate_pins>;
4075a8a2ed6SYixun Lan	pinctrl-names = "default", "clk-gate";
4085a8a2ed6SYixun Lan
4095a8a2ed6SYixun Lan	bus-width = <4>;
4105a8a2ed6SYixun Lan	cap-sd-highspeed;
4115a8a2ed6SYixun Lan	max-frequency = <100000000>;
4125a8a2ed6SYixun Lan	non-removable;
4135a8a2ed6SYixun Lan	disable-wp;
4145a8a2ed6SYixun Lan
4155a8a2ed6SYixun Lan	mmc-pwrseq = <&sdio_pwrseq>;
4165a8a2ed6SYixun Lan
4175a8a2ed6SYixun Lan	vmmc-supply = <&vddao_3v3>;
4185a8a2ed6SYixun Lan	vqmmc-supply = <&vddio_boot>;
4195a8a2ed6SYixun Lan
4205a8a2ed6SYixun Lan	brcmf: wifi@1 {
4215a8a2ed6SYixun Lan		reg = <1>;
4225a8a2ed6SYixun Lan		compatible = "brcm,bcm4329-fmac";
4235a8a2ed6SYixun Lan	};
4245a8a2ed6SYixun Lan};
425a51b74eaSXingyu Chen
4268c0cf40fSJerome Brunet/* emmc storage */
4278c0cf40fSJerome Brunet&sd_emmc_c {
428a51b74eaSXingyu Chen	status = "okay";
4298c0cf40fSJerome Brunet	pinctrl-0 = <&emmc_pins>;
4308c0cf40fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
4318c0cf40fSJerome Brunet	pinctrl-names = "default", "clk-gate";
4328c0cf40fSJerome Brunet
4338c0cf40fSJerome Brunet	bus-width = <8>;
4348c0cf40fSJerome Brunet	cap-sd-highspeed;
4358c0cf40fSJerome Brunet	cap-mmc-highspeed;
4368c0cf40fSJerome Brunet	max-frequency = <180000000>;
4378c0cf40fSJerome Brunet	non-removable;
4388c0cf40fSJerome Brunet	disable-wp;
4398c0cf40fSJerome Brunet	mmc-ddr-1_8v;
4408c0cf40fSJerome Brunet	mmc-hs200-1_8v;
4418c0cf40fSJerome Brunet
4428c0cf40fSJerome Brunet	vmmc-supply = <&vcc_3v3>;
4438c0cf40fSJerome Brunet	vqmmc-supply = <&vddio_boot>;
444a51b74eaSXingyu Chen};
445a0ef1c1cSJerome Brunet
446a0ef1c1cSJerome Brunet&spdifout {
447a0ef1c1cSJerome Brunet	pinctrl-0 = <&spdif_out_a20_pins>;
448a0ef1c1cSJerome Brunet	pinctrl-names = "default";
449a0ef1c1cSJerome Brunet	status = "okay";
450a0ef1c1cSJerome Brunet};
451a0ef1c1cSJerome Brunet
452a0ef1c1cSJerome Brunet&tdmif_a {
453a0ef1c1cSJerome Brunet	pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>,
454a0ef1c1cSJerome Brunet		    <&tdma_din0_pins>, <&tdma_dout0_x15_pins>;
455a0ef1c1cSJerome Brunet	pinctrl-names = "default";
456a0ef1c1cSJerome Brunet	status = "okay";
457a0ef1c1cSJerome Brunet};
458a0ef1c1cSJerome Brunet
459a0ef1c1cSJerome Brunet&tdmif_b {
460a0ef1c1cSJerome Brunet	pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>,
461a0ef1c1cSJerome Brunet		    <&tdmb_din3_pins>, <&mclk_b_pins>;
462a0ef1c1cSJerome Brunet	pinctrl-names = "default";
463a0ef1c1cSJerome Brunet	status = "okay";
464a0ef1c1cSJerome Brunet};
465a0ef1c1cSJerome Brunet
466a0ef1c1cSJerome Brunet&tdmif_c {
467a0ef1c1cSJerome Brunet	pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>,
468a0ef1c1cSJerome Brunet		    <&tdmc_din1_pins>, <&tdmc_dout2_pins>,
469a0ef1c1cSJerome Brunet		    <&mclk_c_pins>;
470a0ef1c1cSJerome Brunet	pinctrl-names = "default";
471a0ef1c1cSJerome Brunet	status = "okay";
472a0ef1c1cSJerome Brunet};
473a0ef1c1cSJerome Brunet
4748c0cf40fSJerome Brunet&tdmin_a {
4758c0cf40fSJerome Brunet	status = "okay";
4768c0cf40fSJerome Brunet};
4778c0cf40fSJerome Brunet
4788c0cf40fSJerome Brunet&tdmin_b {
4798c0cf40fSJerome Brunet	status = "okay";
4808c0cf40fSJerome Brunet};
4818c0cf40fSJerome Brunet
4828c0cf40fSJerome Brunet&tdmin_c {
4838c0cf40fSJerome Brunet	status = "okay";
4848c0cf40fSJerome Brunet};
4858c0cf40fSJerome Brunet
4868c0cf40fSJerome Brunet&tdmin_lb {
4878c0cf40fSJerome Brunet	status = "okay";
4888c0cf40fSJerome Brunet};
4898c0cf40fSJerome Brunet
4908c0cf40fSJerome Brunet&tdmout_c {
4918c0cf40fSJerome Brunet	status = "okay";
4928c0cf40fSJerome Brunet};
4938c0cf40fSJerome Brunet
494a0ef1c1cSJerome Brunet&toddr_a {
495a0ef1c1cSJerome Brunet	status = "okay";
496a0ef1c1cSJerome Brunet};
497a0ef1c1cSJerome Brunet
498a0ef1c1cSJerome Brunet&toddr_b {
499a0ef1c1cSJerome Brunet	status = "okay";
500a0ef1c1cSJerome Brunet};
501a0ef1c1cSJerome Brunet
502a0ef1c1cSJerome Brunet&toddr_c {
503a0ef1c1cSJerome Brunet	status = "okay";
504a0ef1c1cSJerome Brunet};
5058c0cf40fSJerome Brunet
5068c0cf40fSJerome Brunet&uart_A {
5078c0cf40fSJerome Brunet	status = "okay";
5088c0cf40fSJerome Brunet	pinctrl-0 = <&uart_a_pins>;
5098c0cf40fSJerome Brunet	pinctrl-names = "default";
5108c0cf40fSJerome Brunet};
5118c0cf40fSJerome Brunet
5128c0cf40fSJerome Brunet&uart_AO {
5138c0cf40fSJerome Brunet	status = "okay";
5148c0cf40fSJerome Brunet	pinctrl-0 = <&uart_ao_a_pins>;
5158c0cf40fSJerome Brunet	pinctrl-names = "default";
5168c0cf40fSJerome Brunet};
517