18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2017 Amlogic, Inc. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci/dts-v1/; 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include "meson-axg.dtsi" 98c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/ { 128c2ecf20Sopenharmony_ci compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg"; 138c2ecf20Sopenharmony_ci model = "Amlogic Meson AXG S400 Development Board"; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci adc_keys { 168c2ecf20Sopenharmony_ci compatible = "adc-keys"; 178c2ecf20Sopenharmony_ci io-channels = <&saradc 0>; 188c2ecf20Sopenharmony_ci io-channel-names = "buttons"; 198c2ecf20Sopenharmony_ci keyup-threshold-microvolt = <1800000>; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci button-next { 228c2ecf20Sopenharmony_ci label = "Next"; 238c2ecf20Sopenharmony_ci linux,code = <KEY_NEXT>; 248c2ecf20Sopenharmony_ci press-threshold-microvolt = <1116000>; /* 62% */ 258c2ecf20Sopenharmony_ci }; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci button-prev { 288c2ecf20Sopenharmony_ci label = "Previous"; 298c2ecf20Sopenharmony_ci linux,code = <KEY_PREVIOUS>; 308c2ecf20Sopenharmony_ci press-threshold-microvolt = <900000>; /* 50% */ 318c2ecf20Sopenharmony_ci }; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci button-wifi { 348c2ecf20Sopenharmony_ci label = "Wifi"; 358c2ecf20Sopenharmony_ci linux,code = <KEY_WLAN>; 368c2ecf20Sopenharmony_ci press-threshold-microvolt = <684000>; /* 38% */ 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci button-up { 408c2ecf20Sopenharmony_ci label = "Volume Up"; 418c2ecf20Sopenharmony_ci linux,code = <KEY_VOLUMEUP>; 428c2ecf20Sopenharmony_ci press-threshold-microvolt = <468000>; /* 26% */ 438c2ecf20Sopenharmony_ci }; 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci button-down { 468c2ecf20Sopenharmony_ci label = "Volume Down"; 478c2ecf20Sopenharmony_ci linux,code = <KEY_VOLUMEDOWN>; 488c2ecf20Sopenharmony_ci press-threshold-microvolt = <252000>; /* 14% */ 498c2ecf20Sopenharmony_ci }; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci button-voice { 528c2ecf20Sopenharmony_ci label = "Voice"; 538c2ecf20Sopenharmony_ci linux,code = <KEY_VOICECOMMAND>; 548c2ecf20Sopenharmony_ci press-threshold-microvolt = <0>; /* 0% */ 558c2ecf20Sopenharmony_ci }; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci aliases { 598c2ecf20Sopenharmony_ci serial0 = &uart_AO; 608c2ecf20Sopenharmony_ci serial1 = &uart_A; 618c2ecf20Sopenharmony_ci }; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci linein: audio-codec-0 { 648c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 658c2ecf20Sopenharmony_ci compatible = "everest,es7241"; 668c2ecf20Sopenharmony_ci VDDA-supply = <&vcc_3v3>; 678c2ecf20Sopenharmony_ci VDDP-supply = <&vcc_3v3>; 688c2ecf20Sopenharmony_ci VDDD-supply = <&vcc_3v3>; 698c2ecf20Sopenharmony_ci status = "okay"; 708c2ecf20Sopenharmony_ci sound-name-prefix = "Linein"; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci lineout: audio-codec-1 { 748c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 758c2ecf20Sopenharmony_ci compatible = "everest,es7154"; 768c2ecf20Sopenharmony_ci VDD-supply = <&vcc_3v3>; 778c2ecf20Sopenharmony_ci PVDD-supply = <&vcc_5v>; 788c2ecf20Sopenharmony_ci status = "okay"; 798c2ecf20Sopenharmony_ci sound-name-prefix = "Lineout"; 808c2ecf20Sopenharmony_ci }; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci spdif_dit: audio-codec-2 { 838c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 848c2ecf20Sopenharmony_ci compatible = "linux,spdif-dit"; 858c2ecf20Sopenharmony_ci status = "okay"; 868c2ecf20Sopenharmony_ci sound-name-prefix = "DIT"; 878c2ecf20Sopenharmony_ci }; 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci dmics: audio-codec-3 { 908c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 918c2ecf20Sopenharmony_ci compatible = "dmic-codec"; 928c2ecf20Sopenharmony_ci num-channels = <7>; 938c2ecf20Sopenharmony_ci wakeup-delay-ms = <50>; 948c2ecf20Sopenharmony_ci status = "okay"; 958c2ecf20Sopenharmony_ci sound-name-prefix = "MIC"; 968c2ecf20Sopenharmony_ci }; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci spdif_dir: audio-codec-4 { 998c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 1008c2ecf20Sopenharmony_ci compatible = "linux,spdif-dir"; 1018c2ecf20Sopenharmony_ci status = "okay"; 1028c2ecf20Sopenharmony_ci sound-name-prefix = "DIR"; 1038c2ecf20Sopenharmony_ci }; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 1068c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 1078c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 1088c2ecf20Sopenharmony_ci }; 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci chosen { 1118c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 1128c2ecf20Sopenharmony_ci }; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci memory@0 { 1158c2ecf20Sopenharmony_ci device_type = "memory"; 1168c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x40000000>; 1178c2ecf20Sopenharmony_ci }; 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci main_12v: regulator-main_12v { 1208c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1218c2ecf20Sopenharmony_ci regulator-name = "12V"; 1228c2ecf20Sopenharmony_ci regulator-min-microvolt = <12000000>; 1238c2ecf20Sopenharmony_ci regulator-max-microvolt = <12000000>; 1248c2ecf20Sopenharmony_ci regulator-always-on; 1258c2ecf20Sopenharmony_ci }; 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci vcc_3v3: regulator-vcc_3v3 { 1288c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1298c2ecf20Sopenharmony_ci regulator-name = "VCC_3V3"; 1308c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1318c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1328c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1338c2ecf20Sopenharmony_ci regulator-always-on; 1348c2ecf20Sopenharmony_ci }; 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci vcc_5v: regulator-vcc_5v { 1378c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1388c2ecf20Sopenharmony_ci regulator-name = "VCC5V"; 1398c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1408c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1418c2ecf20Sopenharmony_ci vin-supply = <&main_12v>; 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 1448c2ecf20Sopenharmony_ci enable-active-high; 1458c2ecf20Sopenharmony_ci }; 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci vddao_3v3: regulator-vddao_3v3 { 1488c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1498c2ecf20Sopenharmony_ci regulator-name = "VDDAO_3V3"; 1508c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1518c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1528c2ecf20Sopenharmony_ci vin-supply = <&main_12v>; 1538c2ecf20Sopenharmony_ci regulator-always-on; 1548c2ecf20Sopenharmony_ci }; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci vddio_ao18: regulator-vddio_ao18 { 1578c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1588c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO18"; 1598c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1608c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1618c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1628c2ecf20Sopenharmony_ci regulator-always-on; 1638c2ecf20Sopenharmony_ci }; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci vddio_boot: regulator-vddio_boot { 1668c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1678c2ecf20Sopenharmony_ci regulator-name = "VDDIO_BOOT"; 1688c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1698c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1708c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1718c2ecf20Sopenharmony_ci regulator-always-on; 1728c2ecf20Sopenharmony_ci }; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci usb_pwr: regulator-usb_pwr { 1758c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1768c2ecf20Sopenharmony_ci regulator-name = "USB_PWR"; 1778c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1788c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1798c2ecf20Sopenharmony_ci vin-supply = <&vcc_5v>; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; 1828c2ecf20Sopenharmony_ci enable-active-high; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci sdio_pwrseq: sdio-pwrseq { 1868c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 1878c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>; 1888c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 1898c2ecf20Sopenharmony_ci clock-names = "ext_clock"; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci speaker-leds { 1938c2ecf20Sopenharmony_ci compatible = "gpio-leds"; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci aled1 { 1968c2ecf20Sopenharmony_ci label = "speaker:aled1"; 1978c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 7 0>; 1988c2ecf20Sopenharmony_ci }; 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci aled2 { 2018c2ecf20Sopenharmony_ci label = "speaker:aled2"; 2028c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 6 0>; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci aled3 { 2068c2ecf20Sopenharmony_ci label = "speaker:aled3"; 2078c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 5 0>; 2088c2ecf20Sopenharmony_ci }; 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci aled4 { 2118c2ecf20Sopenharmony_ci label = "speaker:aled4"; 2128c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 4 0>; 2138c2ecf20Sopenharmony_ci }; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci aled5 { 2168c2ecf20Sopenharmony_ci label = "speaker:aled5"; 2178c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 3 0>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci aled6 { 2218c2ecf20Sopenharmony_ci label = "speaker:aled6"; 2228c2ecf20Sopenharmony_ci gpios = <&gpio_speaker 2 0>; 2238c2ecf20Sopenharmony_ci }; 2248c2ecf20Sopenharmony_ci }; 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci sound { 2278c2ecf20Sopenharmony_ci compatible = "amlogic,axg-sound-card"; 2288c2ecf20Sopenharmony_ci model = "AXG-S400"; 2298c2ecf20Sopenharmony_ci audio-aux-devs = <&tdmin_a>, <&tdmin_b>, <&tdmin_c>, 2308c2ecf20Sopenharmony_ci <&tdmin_lb>, <&tdmout_c>; 2318c2ecf20Sopenharmony_ci audio-widgets = "Line", "Lineout", 2328c2ecf20Sopenharmony_ci "Line", "Linein", 2338c2ecf20Sopenharmony_ci "Speaker", "Speaker1 Left", 2348c2ecf20Sopenharmony_ci "Speaker", "Speaker1 Right"; 2358c2ecf20Sopenharmony_ci audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2", 2368c2ecf20Sopenharmony_ci "SPDIFOUT IN 0", "FRDDR_A OUT 3", 2378c2ecf20Sopenharmony_ci "TDMOUT_C IN 1", "FRDDR_B OUT 2", 2388c2ecf20Sopenharmony_ci "SPDIFOUT IN 1", "FRDDR_B OUT 3", 2398c2ecf20Sopenharmony_ci "TDMOUT_C IN 2", "FRDDR_C OUT 2", 2408c2ecf20Sopenharmony_ci "SPDIFOUT IN 2", "FRDDR_C OUT 3", 2418c2ecf20Sopenharmony_ci "TDM_C Playback", "TDMOUT_C OUT", 2428c2ecf20Sopenharmony_ci "TDMIN_A IN 2", "TDM_C Capture", 2438c2ecf20Sopenharmony_ci "TDMIN_A IN 5", "TDM_C Loopback", 2448c2ecf20Sopenharmony_ci "TDMIN_B IN 2", "TDM_C Capture", 2458c2ecf20Sopenharmony_ci "TDMIN_B IN 5", "TDM_C Loopback", 2468c2ecf20Sopenharmony_ci "TDMIN_C IN 2", "TDM_C Capture", 2478c2ecf20Sopenharmony_ci "TDMIN_C IN 5", "TDM_C Loopback", 2488c2ecf20Sopenharmony_ci "TDMIN_LB IN 2", "TDM_C Loopback", 2498c2ecf20Sopenharmony_ci "TDMIN_LB IN 5", "TDM_C Capture", 2508c2ecf20Sopenharmony_ci "TODDR_A IN 0", "TDMIN_A OUT", 2518c2ecf20Sopenharmony_ci "TODDR_B IN 0", "TDMIN_A OUT", 2528c2ecf20Sopenharmony_ci "TODDR_C IN 0", "TDMIN_A OUT", 2538c2ecf20Sopenharmony_ci "TODDR_A IN 1", "TDMIN_B OUT", 2548c2ecf20Sopenharmony_ci "TODDR_B IN 1", "TDMIN_B OUT", 2558c2ecf20Sopenharmony_ci "TODDR_C IN 1", "TDMIN_B OUT", 2568c2ecf20Sopenharmony_ci "TODDR_A IN 2", "TDMIN_C OUT", 2578c2ecf20Sopenharmony_ci "TODDR_B IN 2", "TDMIN_C OUT", 2588c2ecf20Sopenharmony_ci "TODDR_C IN 2", "TDMIN_C OUT", 2598c2ecf20Sopenharmony_ci "TODDR_A IN 3", "SPDIFIN Capture", 2608c2ecf20Sopenharmony_ci "TODDR_B IN 3", "SPDIFIN Capture", 2618c2ecf20Sopenharmony_ci "TODDR_C IN 3", "SPDIFIN Capture", 2628c2ecf20Sopenharmony_ci "TODDR_A IN 4", "PDM Capture", 2638c2ecf20Sopenharmony_ci "TODDR_B IN 4", "PDM Capture", 2648c2ecf20Sopenharmony_ci "TODDR_C IN 4", "PDM Capture", 2658c2ecf20Sopenharmony_ci "TODDR_A IN 6", "TDMIN_LB OUT", 2668c2ecf20Sopenharmony_ci "TODDR_B IN 6", "TDMIN_LB OUT", 2678c2ecf20Sopenharmony_ci "TODDR_C IN 6", "TDMIN_LB OUT", 2688c2ecf20Sopenharmony_ci "Lineout", "Lineout AOUTL", 2698c2ecf20Sopenharmony_ci "Lineout", "Lineout AOUTR", 2708c2ecf20Sopenharmony_ci "Speaker1 Left", "SPK1 OUT_A", 2718c2ecf20Sopenharmony_ci "Speaker1 Left", "SPK1 OUT_B", 2728c2ecf20Sopenharmony_ci "Speaker1 Right", "SPK1 OUT_C", 2738c2ecf20Sopenharmony_ci "Speaker1 Right", "SPK1 OUT_D", 2748c2ecf20Sopenharmony_ci "Linein AINL", "Linein", 2758c2ecf20Sopenharmony_ci "Linein AINR", "Linein"; 2768c2ecf20Sopenharmony_ci assigned-clocks = <&clkc CLKID_HIFI_PLL>, 2778c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL0>, 2788c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL1>; 2798c2ecf20Sopenharmony_ci assigned-clock-parents = <0>, <0>, <0>; 2808c2ecf20Sopenharmony_ci assigned-clock-rates = <589824000>, 2818c2ecf20Sopenharmony_ci <270950400>, 2828c2ecf20Sopenharmony_ci <393216000>; 2838c2ecf20Sopenharmony_ci status = "okay"; 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci dai-link-0 { 2868c2ecf20Sopenharmony_ci sound-dai = <&frddr_a>; 2878c2ecf20Sopenharmony_ci }; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci dai-link-1 { 2908c2ecf20Sopenharmony_ci sound-dai = <&frddr_b>; 2918c2ecf20Sopenharmony_ci }; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci dai-link-2 { 2948c2ecf20Sopenharmony_ci sound-dai = <&frddr_c>; 2958c2ecf20Sopenharmony_ci }; 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci dai-link-3 { 2988c2ecf20Sopenharmony_ci sound-dai = <&toddr_a>; 2998c2ecf20Sopenharmony_ci }; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci dai-link-4 { 3028c2ecf20Sopenharmony_ci sound-dai = <&toddr_b>; 3038c2ecf20Sopenharmony_ci }; 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_ci dai-link-5 { 3068c2ecf20Sopenharmony_ci sound-dai = <&toddr_c>; 3078c2ecf20Sopenharmony_ci }; 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci dai-link-6 { 3108c2ecf20Sopenharmony_ci sound-dai = <&tdmif_c>; 3118c2ecf20Sopenharmony_ci dai-format = "i2s"; 3128c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-2 = <1 1>; 3138c2ecf20Sopenharmony_ci dai-tdm-slot-rx-mask-1 = <1 1>; 3148c2ecf20Sopenharmony_ci mclk-fs = <256>; 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci codec-0 { 3178c2ecf20Sopenharmony_ci sound-dai = <&lineout>; 3188c2ecf20Sopenharmony_ci }; 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci codec-1 { 3218c2ecf20Sopenharmony_ci sound-dai = <&speaker_amp1>; 3228c2ecf20Sopenharmony_ci }; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci codec-2 { 3258c2ecf20Sopenharmony_ci sound-dai = <&linein>; 3268c2ecf20Sopenharmony_ci }; 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_ci }; 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci dai-link-7 { 3318c2ecf20Sopenharmony_ci sound-dai = <&spdifout>; 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci codec { 3348c2ecf20Sopenharmony_ci sound-dai = <&spdif_dit>; 3358c2ecf20Sopenharmony_ci }; 3368c2ecf20Sopenharmony_ci }; 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci dai-link-8 { 3398c2ecf20Sopenharmony_ci sound-dai = <&spdifin>; 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ci codec { 3428c2ecf20Sopenharmony_ci sound-dai = <&spdif_dir>; 3438c2ecf20Sopenharmony_ci }; 3448c2ecf20Sopenharmony_ci }; 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ci dai-link-9 { 3478c2ecf20Sopenharmony_ci sound-dai = <&pdm>; 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ci codec { 3508c2ecf20Sopenharmony_ci sound-dai = <&dmics>; 3518c2ecf20Sopenharmony_ci }; 3528c2ecf20Sopenharmony_ci }; 3538c2ecf20Sopenharmony_ci }; 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci wifi32k: wifi32k { 3568c2ecf20Sopenharmony_ci compatible = "pwm-clock"; 3578c2ecf20Sopenharmony_ci #clock-cells = <0>; 3588c2ecf20Sopenharmony_ci clock-frequency = <32768>; 3598c2ecf20Sopenharmony_ci pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */ 3608c2ecf20Sopenharmony_ci }; 3618c2ecf20Sopenharmony_ci}; 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ciðmac { 3648c2ecf20Sopenharmony_ci status = "okay"; 3658c2ecf20Sopenharmony_ci pinctrl-0 = <ð_rgmii_y_pins>; 3668c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3678c2ecf20Sopenharmony_ci phy-handle = <ð_phy0>; 3688c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 3698c2ecf20Sopenharmony_ci 3708c2ecf20Sopenharmony_ci mdio { 3718c2ecf20Sopenharmony_ci compatible = "snps,dwmac-mdio"; 3728c2ecf20Sopenharmony_ci #address-cells = <1>; 3738c2ecf20Sopenharmony_ci #size-cells = <0>; 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ci eth_phy0: ethernet-phy@0 { 3768c2ecf20Sopenharmony_ci /* Realtek RTL8211F (0x001cc916) */ 3778c2ecf20Sopenharmony_ci reg = <0>; 3788c2ecf20Sopenharmony_ci interrupt-parent = <&gpio_intc>; 3798c2ecf20Sopenharmony_ci interrupts = <98 IRQ_TYPE_LEVEL_LOW>; 3808c2ecf20Sopenharmony_ci eee-broken-1000t; 3818c2ecf20Sopenharmony_ci }; 3828c2ecf20Sopenharmony_ci }; 3838c2ecf20Sopenharmony_ci}; 3848c2ecf20Sopenharmony_ci 3858c2ecf20Sopenharmony_ci&frddr_a { 3868c2ecf20Sopenharmony_ci status = "okay"; 3878c2ecf20Sopenharmony_ci}; 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_ci&frddr_b { 3908c2ecf20Sopenharmony_ci status = "okay"; 3918c2ecf20Sopenharmony_ci}; 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ci&frddr_c { 3948c2ecf20Sopenharmony_ci status = "okay"; 3958c2ecf20Sopenharmony_ci}; 3968c2ecf20Sopenharmony_ci 3978c2ecf20Sopenharmony_ci&ir { 3988c2ecf20Sopenharmony_ci status = "okay"; 3998c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 4008c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4018c2ecf20Sopenharmony_ci}; 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci&i2c1 { 4048c2ecf20Sopenharmony_ci status = "okay"; 4058c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c1_z_pins>; 4068c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci speaker_amp1: audio-codec@1b { 4098c2ecf20Sopenharmony_ci compatible = "ti,tas5707"; 4108c2ecf20Sopenharmony_ci reg = <0x1b>; 4118c2ecf20Sopenharmony_ci reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; 4128c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 4138c2ecf20Sopenharmony_ci AVDD-supply = <&vcc_3v3>; 4148c2ecf20Sopenharmony_ci DVDD-supply = <&vcc_3v3>; 4158c2ecf20Sopenharmony_ci PVDD_A-supply = <&main_12v>; 4168c2ecf20Sopenharmony_ci PVDD_B-supply = <&main_12v>; 4178c2ecf20Sopenharmony_ci PVDD_C-supply = <&main_12v>; 4188c2ecf20Sopenharmony_ci PVDD_D-supply = <&main_12v>; 4198c2ecf20Sopenharmony_ci sound-name-prefix = "SPK1"; 4208c2ecf20Sopenharmony_ci }; 4218c2ecf20Sopenharmony_ci}; 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ci&i2c_AO { 4248c2ecf20Sopenharmony_ci status = "okay"; 4258c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>; 4268c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ci gpio_speaker: gpio-controller@1f { 4298c2ecf20Sopenharmony_ci compatible = "nxp,pca9557"; 4308c2ecf20Sopenharmony_ci reg = <0x1f>; 4318c2ecf20Sopenharmony_ci gpio-controller; 4328c2ecf20Sopenharmony_ci #gpio-cells = <2>; 4338c2ecf20Sopenharmony_ci vcc-supply = <&vddao_3v3>; 4348c2ecf20Sopenharmony_ci }; 4358c2ecf20Sopenharmony_ci}; 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci&pdm { 4388c2ecf20Sopenharmony_ci pinctrl-0 = <&pdm_dclk_a14_pins>, <&pdm_din0_pins>, 4398c2ecf20Sopenharmony_ci <&pdm_din1_pins>, <&pdm_din2_pins>, <&pdm_din3_pins>; 4408c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4418c2ecf20Sopenharmony_ci status = "okay"; 4428c2ecf20Sopenharmony_ci}; 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ci&pwm_ab { 4458c2ecf20Sopenharmony_ci status = "okay"; 4468c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_a_x20_pins>; 4478c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4488c2ecf20Sopenharmony_ci}; 4498c2ecf20Sopenharmony_ci 4508c2ecf20Sopenharmony_ci&saradc { 4518c2ecf20Sopenharmony_ci status = "okay"; 4528c2ecf20Sopenharmony_ci vref-supply = <&vddio_ao18>; 4538c2ecf20Sopenharmony_ci}; 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_ci/* wifi module */ 4568c2ecf20Sopenharmony_ci&sd_emmc_b { 4578c2ecf20Sopenharmony_ci status = "okay"; 4588c2ecf20Sopenharmony_ci #address-cells = <1>; 4598c2ecf20Sopenharmony_ci #size-cells = <0>; 4608c2ecf20Sopenharmony_ci 4618c2ecf20Sopenharmony_ci pinctrl-0 = <&sdio_pins>; 4628c2ecf20Sopenharmony_ci pinctrl-1 = <&sdio_clk_gate_pins>; 4638c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4648c2ecf20Sopenharmony_ci 4658c2ecf20Sopenharmony_ci bus-width = <4>; 4668c2ecf20Sopenharmony_ci cap-sd-highspeed; 4678c2ecf20Sopenharmony_ci sd-uhs-sdr104; 4688c2ecf20Sopenharmony_ci max-frequency = <200000000>; 4698c2ecf20Sopenharmony_ci non-removable; 4708c2ecf20Sopenharmony_ci disable-wp; 4718c2ecf20Sopenharmony_ci 4728c2ecf20Sopenharmony_ci mmc-pwrseq = <&sdio_pwrseq>; 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4758c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_boot>; 4768c2ecf20Sopenharmony_ci 4778c2ecf20Sopenharmony_ci brcmf: wifi@1 { 4788c2ecf20Sopenharmony_ci reg = <1>; 4798c2ecf20Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 4808c2ecf20Sopenharmony_ci }; 4818c2ecf20Sopenharmony_ci}; 4828c2ecf20Sopenharmony_ci 4838c2ecf20Sopenharmony_ci/* emmc storage */ 4848c2ecf20Sopenharmony_ci&sd_emmc_c { 4858c2ecf20Sopenharmony_ci status = "okay"; 4868c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 4878c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 4888c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ci bus-width = <8>; 4918c2ecf20Sopenharmony_ci cap-mmc-highspeed; 4928c2ecf20Sopenharmony_ci max-frequency = <200000000>; 4938c2ecf20Sopenharmony_ci non-removable; 4948c2ecf20Sopenharmony_ci disable-wp; 4958c2ecf20Sopenharmony_ci mmc-ddr-1_8v; 4968c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 4978c2ecf20Sopenharmony_ci 4988c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ci vmmc-supply = <&vcc_3v3>; 5018c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_boot>; 5028c2ecf20Sopenharmony_ci}; 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_ci&spdifin { 5058c2ecf20Sopenharmony_ci pinctrl-0 = <&spdif_in_a19_pins>; 5068c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5078c2ecf20Sopenharmony_ci status = "okay"; 5088c2ecf20Sopenharmony_ci}; 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci&spdifout { 5118c2ecf20Sopenharmony_ci pinctrl-0 = <&spdif_out_a20_pins>; 5128c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5138c2ecf20Sopenharmony_ci status = "okay"; 5148c2ecf20Sopenharmony_ci}; 5158c2ecf20Sopenharmony_ci 5168c2ecf20Sopenharmony_ci&tdmif_a { 5178c2ecf20Sopenharmony_ci pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>, 5188c2ecf20Sopenharmony_ci <&tdma_din0_pins>, <&tdma_dout0_x15_pins>; 5198c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5208c2ecf20Sopenharmony_ci status = "okay"; 5218c2ecf20Sopenharmony_ci}; 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_ci&tdmif_b { 5248c2ecf20Sopenharmony_ci pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>, 5258c2ecf20Sopenharmony_ci <&tdmb_din3_pins>, <&mclk_b_pins>; 5268c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5278c2ecf20Sopenharmony_ci status = "okay"; 5288c2ecf20Sopenharmony_ci}; 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ci&tdmif_c { 5318c2ecf20Sopenharmony_ci pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>, 5328c2ecf20Sopenharmony_ci <&tdmc_din1_pins>, <&tdmc_dout2_pins>, 5338c2ecf20Sopenharmony_ci <&mclk_c_pins>; 5348c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5358c2ecf20Sopenharmony_ci status = "okay"; 5368c2ecf20Sopenharmony_ci}; 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_ci&tdmin_a { 5398c2ecf20Sopenharmony_ci status = "okay"; 5408c2ecf20Sopenharmony_ci}; 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ci&tdmin_b { 5438c2ecf20Sopenharmony_ci status = "okay"; 5448c2ecf20Sopenharmony_ci}; 5458c2ecf20Sopenharmony_ci 5468c2ecf20Sopenharmony_ci&tdmin_c { 5478c2ecf20Sopenharmony_ci status = "okay"; 5488c2ecf20Sopenharmony_ci}; 5498c2ecf20Sopenharmony_ci 5508c2ecf20Sopenharmony_ci&tdmin_lb { 5518c2ecf20Sopenharmony_ci status = "okay"; 5528c2ecf20Sopenharmony_ci}; 5538c2ecf20Sopenharmony_ci 5548c2ecf20Sopenharmony_ci&tdmout_c { 5558c2ecf20Sopenharmony_ci status = "okay"; 5568c2ecf20Sopenharmony_ci}; 5578c2ecf20Sopenharmony_ci 5588c2ecf20Sopenharmony_ci&toddr_a { 5598c2ecf20Sopenharmony_ci status = "okay"; 5608c2ecf20Sopenharmony_ci}; 5618c2ecf20Sopenharmony_ci 5628c2ecf20Sopenharmony_ci&toddr_b { 5638c2ecf20Sopenharmony_ci status = "okay"; 5648c2ecf20Sopenharmony_ci}; 5658c2ecf20Sopenharmony_ci 5668c2ecf20Sopenharmony_ci&toddr_c { 5678c2ecf20Sopenharmony_ci status = "okay"; 5688c2ecf20Sopenharmony_ci}; 5698c2ecf20Sopenharmony_ci 5708c2ecf20Sopenharmony_ci&uart_A { 5718c2ecf20Sopenharmony_ci status = "okay"; 5728c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 5738c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5748c2ecf20Sopenharmony_ci uart-has-rtscts; 5758c2ecf20Sopenharmony_ci 5768c2ecf20Sopenharmony_ci bluetooth { 5778c2ecf20Sopenharmony_ci compatible = "brcm,bcm43438-bt"; 5788c2ecf20Sopenharmony_ci shutdown-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>; 5798c2ecf20Sopenharmony_ci }; 5808c2ecf20Sopenharmony_ci}; 5818c2ecf20Sopenharmony_ci 5828c2ecf20Sopenharmony_ci&uart_AO { 5838c2ecf20Sopenharmony_ci status = "okay"; 5848c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 5858c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5868c2ecf20Sopenharmony_ci}; 5878c2ecf20Sopenharmony_ci 5888c2ecf20Sopenharmony_ci&usb { 5898c2ecf20Sopenharmony_ci status = "okay"; 5908c2ecf20Sopenharmony_ci dr_mode = "otg"; 5918c2ecf20Sopenharmony_ci vbus-supply = <&usb_pwr>; 5928c2ecf20Sopenharmony_ci}; 593