18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2019 BayLibre SAS. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci/dts-v1/; 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include "meson-g12a.dtsi" 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 108c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 118c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-g12a-gpio.h> 128c2ecf20Sopenharmony_ci#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci/ { 158c2ecf20Sopenharmony_ci compatible = "seirobotics,sei510", "amlogic,g12a"; 168c2ecf20Sopenharmony_ci model = "SEI Robotics SEI510"; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci adc_keys { 198c2ecf20Sopenharmony_ci compatible = "adc-keys"; 208c2ecf20Sopenharmony_ci io-channels = <&saradc 0>; 218c2ecf20Sopenharmony_ci io-channel-names = "buttons"; 228c2ecf20Sopenharmony_ci keyup-threshold-microvolt = <1800000>; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci button-onoff { 258c2ecf20Sopenharmony_ci label = "On/Off"; 268c2ecf20Sopenharmony_ci linux,code = <KEY_POWER>; 278c2ecf20Sopenharmony_ci press-threshold-microvolt = <1700000>; 288c2ecf20Sopenharmony_ci }; 298c2ecf20Sopenharmony_ci }; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci aliases { 328c2ecf20Sopenharmony_ci serial0 = &uart_AO; 338c2ecf20Sopenharmony_ci ethernet0 = ðmac; 348c2ecf20Sopenharmony_ci }; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci mono_dac: audio-codec-0 { 378c2ecf20Sopenharmony_ci compatible = "maxim,max98357a"; 388c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 398c2ecf20Sopenharmony_ci sound-name-prefix = "U16"; 408c2ecf20Sopenharmony_ci sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; 418c2ecf20Sopenharmony_ci }; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci dmics: audio-codec-1 { 448c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 458c2ecf20Sopenharmony_ci compatible = "dmic-codec"; 468c2ecf20Sopenharmony_ci num-channels = <2>; 478c2ecf20Sopenharmony_ci wakeup-delay-ms = <50>; 488c2ecf20Sopenharmony_ci status = "okay"; 498c2ecf20Sopenharmony_ci sound-name-prefix = "MIC"; 508c2ecf20Sopenharmony_ci }; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci chosen { 538c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci cvbs-connector { 578c2ecf20Sopenharmony_ci compatible = "composite-video-connector"; 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci port { 608c2ecf20Sopenharmony_ci cvbs_connector_in: endpoint { 618c2ecf20Sopenharmony_ci remote-endpoint = <&cvbs_vdac_out>; 628c2ecf20Sopenharmony_ci }; 638c2ecf20Sopenharmony_ci }; 648c2ecf20Sopenharmony_ci }; 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 678c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 688c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 698c2ecf20Sopenharmony_ci }; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci hdmi-connector { 728c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 738c2ecf20Sopenharmony_ci type = "a"; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci port { 768c2ecf20Sopenharmony_ci hdmi_connector_in: endpoint { 778c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_tx_tmds_out>; 788c2ecf20Sopenharmony_ci }; 798c2ecf20Sopenharmony_ci }; 808c2ecf20Sopenharmony_ci }; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci memory@0 { 838c2ecf20Sopenharmony_ci device_type = "memory"; 848c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x40000000>; 858c2ecf20Sopenharmony_ci }; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci ao_5v: regulator-ao_5v { 888c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 898c2ecf20Sopenharmony_ci regulator-name = "AO_5V"; 908c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 918c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 928c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 938c2ecf20Sopenharmony_ci regulator-always-on; 948c2ecf20Sopenharmony_ci }; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci dc_in: regulator-dc_in { 978c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 988c2ecf20Sopenharmony_ci regulator-name = "DC_IN"; 998c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1008c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1018c2ecf20Sopenharmony_ci regulator-always-on; 1028c2ecf20Sopenharmony_ci }; 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci emmc_1v8: regulator-emmc_1v8 { 1058c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1068c2ecf20Sopenharmony_ci regulator-name = "EMMC_1V8"; 1078c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1088c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1098c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1108c2ecf20Sopenharmony_ci regulator-always-on; 1118c2ecf20Sopenharmony_ci }; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci vddao_3v3: regulator-vddao_3v3 { 1148c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1158c2ecf20Sopenharmony_ci regulator-name = "VDDAO_3V3"; 1168c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1178c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1188c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 1198c2ecf20Sopenharmony_ci regulator-always-on; 1208c2ecf20Sopenharmony_ci }; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci vddao_3v3_t: regultor-vddao_3v3_t { 1238c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1248c2ecf20Sopenharmony_ci regulator-name = "VDDAO_3V3_T"; 1258c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1268c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1278c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1288c2ecf20Sopenharmony_ci gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 1298c2ecf20Sopenharmony_ci enable-active-high; 1308c2ecf20Sopenharmony_ci }; 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci vddcpu: regulator-vddcpu { 1338c2ecf20Sopenharmony_ci /* 1348c2ecf20Sopenharmony_ci * SY8120B1ABC DC/DC Regulator. 1358c2ecf20Sopenharmony_ci */ 1368c2ecf20Sopenharmony_ci compatible = "pwm-regulator"; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci regulator-name = "VDDCPU"; 1398c2ecf20Sopenharmony_ci regulator-min-microvolt = <721000>; 1408c2ecf20Sopenharmony_ci regulator-max-microvolt = <1022000>; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci pwm-supply = <&dc_in>; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci pwms = <&pwm_AO_cd 1 1250 0>; 1458c2ecf20Sopenharmony_ci pwm-dutycycle-range = <100 0>; 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci regulator-boot-on; 1488c2ecf20Sopenharmony_ci regulator-always-on; 1498c2ecf20Sopenharmony_ci }; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci vddio_ao1v8: regulator-vddio_ao1v8 { 1528c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1538c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO1V8"; 1548c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1558c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1568c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1578c2ecf20Sopenharmony_ci regulator-always-on; 1588c2ecf20Sopenharmony_ci }; 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci sdio_pwrseq: sdio-pwrseq { 1618c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 1628c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1638c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 1648c2ecf20Sopenharmony_ci clock-names = "ext_clock"; 1658c2ecf20Sopenharmony_ci }; 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci wifi32k: wifi32k { 1688c2ecf20Sopenharmony_ci compatible = "pwm-clock"; 1698c2ecf20Sopenharmony_ci #clock-cells = <0>; 1708c2ecf20Sopenharmony_ci clock-frequency = <32768>; 1718c2ecf20Sopenharmony_ci pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1728c2ecf20Sopenharmony_ci }; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci sound { 1758c2ecf20Sopenharmony_ci compatible = "amlogic,axg-sound-card"; 1768c2ecf20Sopenharmony_ci model = "G12A-SEI510"; 1778c2ecf20Sopenharmony_ci audio-aux-devs = <&tdmout_a>, <&tdmout_b>, 1788c2ecf20Sopenharmony_ci <&tdmin_a>, <&tdmin_b>; 1798c2ecf20Sopenharmony_ci audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 1808c2ecf20Sopenharmony_ci "TDMOUT_A IN 1", "FRDDR_B OUT 0", 1818c2ecf20Sopenharmony_ci "TDMOUT_A IN 2", "FRDDR_C OUT 0", 1828c2ecf20Sopenharmony_ci "TDM_A Playback", "TDMOUT_A OUT", 1838c2ecf20Sopenharmony_ci "TDMOUT_B IN 0", "FRDDR_A OUT 1", 1848c2ecf20Sopenharmony_ci "TDMOUT_B IN 1", "FRDDR_B OUT 1", 1858c2ecf20Sopenharmony_ci "TDMOUT_B IN 2", "FRDDR_C OUT 1", 1868c2ecf20Sopenharmony_ci "TDM_B Playback", "TDMOUT_B OUT", 1878c2ecf20Sopenharmony_ci "TODDR_A IN 4", "PDM Capture", 1888c2ecf20Sopenharmony_ci "TODDR_B IN 4", "PDM Capture", 1898c2ecf20Sopenharmony_ci "TODDR_C IN 4", "PDM Capture", 1908c2ecf20Sopenharmony_ci "TDMIN_A IN 0", "TDM_A Capture", 1918c2ecf20Sopenharmony_ci "TDMIN_A IN 3", "TDM_A Loopback", 1928c2ecf20Sopenharmony_ci "TDMIN_B IN 0", "TDM_A Capture", 1938c2ecf20Sopenharmony_ci "TDMIN_B IN 3", "TDM_A Loopback", 1948c2ecf20Sopenharmony_ci "TDMIN_A IN 1", "TDM_B Capture", 1958c2ecf20Sopenharmony_ci "TDMIN_A IN 4", "TDM_B Loopback", 1968c2ecf20Sopenharmony_ci "TDMIN_B IN 1", "TDM_B Capture", 1978c2ecf20Sopenharmony_ci "TDMIN_B IN 4", "TDM_B Loopback", 1988c2ecf20Sopenharmony_ci "TODDR_A IN 0", "TDMIN_A OUT", 1998c2ecf20Sopenharmony_ci "TODDR_B IN 0", "TDMIN_A OUT", 2008c2ecf20Sopenharmony_ci "TODDR_C IN 0", "TDMIN_A OUT", 2018c2ecf20Sopenharmony_ci "TODDR_A IN 1", "TDMIN_B OUT", 2028c2ecf20Sopenharmony_ci "TODDR_B IN 1", "TDMIN_B OUT", 2038c2ecf20Sopenharmony_ci "TODDR_C IN 1", "TDMIN_B OUT"; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci assigned-clocks = <&clkc CLKID_MPLL2>, 2068c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL0>, 2078c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL1>; 2088c2ecf20Sopenharmony_ci assigned-clock-parents = <0>, <0>, <0>; 2098c2ecf20Sopenharmony_ci assigned-clock-rates = <294912000>, 2108c2ecf20Sopenharmony_ci <270950400>, 2118c2ecf20Sopenharmony_ci <393216000>; 2128c2ecf20Sopenharmony_ci status = "okay"; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci dai-link-0 { 2158c2ecf20Sopenharmony_ci sound-dai = <&frddr_a>; 2168c2ecf20Sopenharmony_ci }; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci dai-link-1 { 2198c2ecf20Sopenharmony_ci sound-dai = <&frddr_b>; 2208c2ecf20Sopenharmony_ci }; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci dai-link-2 { 2238c2ecf20Sopenharmony_ci sound-dai = <&frddr_c>; 2248c2ecf20Sopenharmony_ci }; 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci dai-link-3 { 2278c2ecf20Sopenharmony_ci sound-dai = <&toddr_a>; 2288c2ecf20Sopenharmony_ci }; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci dai-link-4 { 2318c2ecf20Sopenharmony_ci sound-dai = <&toddr_b>; 2328c2ecf20Sopenharmony_ci }; 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ci dai-link-5 { 2358c2ecf20Sopenharmony_ci sound-dai = <&toddr_c>; 2368c2ecf20Sopenharmony_ci }; 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci /* internal speaker interface */ 2398c2ecf20Sopenharmony_ci dai-link-6 { 2408c2ecf20Sopenharmony_ci sound-dai = <&tdmif_a>; 2418c2ecf20Sopenharmony_ci dai-format = "i2s"; 2428c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-0 = <1 1>; 2438c2ecf20Sopenharmony_ci mclk-fs = <256>; 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci codec-0 { 2468c2ecf20Sopenharmony_ci sound-dai = <&mono_dac>; 2478c2ecf20Sopenharmony_ci }; 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ci codec-1 { 2508c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 2518c2ecf20Sopenharmony_ci }; 2528c2ecf20Sopenharmony_ci }; 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci /* 8ch hdmi interface */ 2558c2ecf20Sopenharmony_ci dai-link-7 { 2568c2ecf20Sopenharmony_ci sound-dai = <&tdmif_b>; 2578c2ecf20Sopenharmony_ci dai-format = "i2s"; 2588c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-0 = <1 1>; 2598c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-1 = <1 1>; 2608c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-2 = <1 1>; 2618c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-3 = <1 1>; 2628c2ecf20Sopenharmony_ci mclk-fs = <256>; 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci codec { 2658c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 2668c2ecf20Sopenharmony_ci }; 2678c2ecf20Sopenharmony_ci }; 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ci /* internal digital mics */ 2708c2ecf20Sopenharmony_ci dai-link-8 { 2718c2ecf20Sopenharmony_ci sound-dai = <&pdm>; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci codec { 2748c2ecf20Sopenharmony_ci sound-dai = <&dmics>; 2758c2ecf20Sopenharmony_ci }; 2768c2ecf20Sopenharmony_ci }; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci /* hdmi glue */ 2798c2ecf20Sopenharmony_ci dai-link-9 { 2808c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci codec { 2838c2ecf20Sopenharmony_ci sound-dai = <&hdmi_tx>; 2848c2ecf20Sopenharmony_ci }; 2858c2ecf20Sopenharmony_ci }; 2868c2ecf20Sopenharmony_ci }; 2878c2ecf20Sopenharmony_ci}; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci&arb { 2908c2ecf20Sopenharmony_ci status = "okay"; 2918c2ecf20Sopenharmony_ci}; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci&cec_AO { 2948c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_a_h_pins>; 2958c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2968c2ecf20Sopenharmony_ci status = "disabled"; 2978c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2988c2ecf20Sopenharmony_ci}; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci&cecb_AO { 3018c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_b_h_pins>; 3028c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3038c2ecf20Sopenharmony_ci status = "okay"; 3048c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 3058c2ecf20Sopenharmony_ci}; 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci&clkc_audio { 3088c2ecf20Sopenharmony_ci status = "okay"; 3098c2ecf20Sopenharmony_ci}; 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci&cpu0 { 3128c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 3138c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 3148c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 3158c2ecf20Sopenharmony_ci clock-latency = <50000>; 3168c2ecf20Sopenharmony_ci}; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci&cpu1 { 3198c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 3208c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 3218c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 3228c2ecf20Sopenharmony_ci clock-latency = <50000>; 3238c2ecf20Sopenharmony_ci}; 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci&cpu2 { 3268c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 3278c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 3288c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 3298c2ecf20Sopenharmony_ci clock-latency = <50000>; 3308c2ecf20Sopenharmony_ci}; 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ci&cpu3 { 3338c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 3348c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 3358c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 3368c2ecf20Sopenharmony_ci clock-latency = <50000>; 3378c2ecf20Sopenharmony_ci}; 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_ci&cvbs_vdac_port { 3408c2ecf20Sopenharmony_ci cvbs_vdac_out: endpoint { 3418c2ecf20Sopenharmony_ci remote-endpoint = <&cvbs_connector_in>; 3428c2ecf20Sopenharmony_ci }; 3438c2ecf20Sopenharmony_ci}; 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ciðmac { 3468c2ecf20Sopenharmony_ci status = "okay"; 3478c2ecf20Sopenharmony_ci phy-handle = <&internal_ephy>; 3488c2ecf20Sopenharmony_ci phy-mode = "rmii"; 3498c2ecf20Sopenharmony_ci}; 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ci&frddr_a { 3528c2ecf20Sopenharmony_ci status = "okay"; 3538c2ecf20Sopenharmony_ci}; 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci&frddr_b { 3568c2ecf20Sopenharmony_ci status = "okay"; 3578c2ecf20Sopenharmony_ci}; 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ci&frddr_c { 3608c2ecf20Sopenharmony_ci status = "okay"; 3618c2ecf20Sopenharmony_ci}; 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ci&hdmi_tx { 3648c2ecf20Sopenharmony_ci status = "okay"; 3658c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 3668c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3678c2ecf20Sopenharmony_ci}; 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port { 3708c2ecf20Sopenharmony_ci hdmi_tx_tmds_out: endpoint { 3718c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_connector_in>; 3728c2ecf20Sopenharmony_ci }; 3738c2ecf20Sopenharmony_ci}; 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ci&i2c3 { 3768c2ecf20Sopenharmony_ci status = "okay"; 3778c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 3788c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3798c2ecf20Sopenharmony_ci}; 3808c2ecf20Sopenharmony_ci 3818c2ecf20Sopenharmony_ci&ir { 3828c2ecf20Sopenharmony_ci status = "okay"; 3838c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 3848c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3858c2ecf20Sopenharmony_ci}; 3868c2ecf20Sopenharmony_ci 3878c2ecf20Sopenharmony_ci&pwm_AO_cd { 3888c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_ao_d_e_pins>; 3898c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3908c2ecf20Sopenharmony_ci clocks = <&xtal>; 3918c2ecf20Sopenharmony_ci clock-names = "clkin1"; 3928c2ecf20Sopenharmony_ci status = "okay"; 3938c2ecf20Sopenharmony_ci}; 3948c2ecf20Sopenharmony_ci 3958c2ecf20Sopenharmony_ci&pwm_ef { 3968c2ecf20Sopenharmony_ci status = "okay"; 3978c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_e_pins>; 3988c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3998c2ecf20Sopenharmony_ci clocks = <&xtal>; 4008c2ecf20Sopenharmony_ci clock-names = "clkin0"; 4018c2ecf20Sopenharmony_ci}; 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci&pdm { 4048c2ecf20Sopenharmony_ci pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, 4058c2ecf20Sopenharmony_ci <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, 4068c2ecf20Sopenharmony_ci <&pdm_dclk_z_pins>; 4078c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4088c2ecf20Sopenharmony_ci status = "okay"; 4098c2ecf20Sopenharmony_ci}; 4108c2ecf20Sopenharmony_ci 4118c2ecf20Sopenharmony_ci&saradc { 4128c2ecf20Sopenharmony_ci status = "okay"; 4138c2ecf20Sopenharmony_ci vref-supply = <&vddio_ao1v8>; 4148c2ecf20Sopenharmony_ci}; 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ci/* SDIO */ 4178c2ecf20Sopenharmony_ci&sd_emmc_a { 4188c2ecf20Sopenharmony_ci status = "okay"; 4198c2ecf20Sopenharmony_ci pinctrl-0 = <&sdio_pins>; 4208c2ecf20Sopenharmony_ci pinctrl-1 = <&sdio_clk_gate_pins>; 4218c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4228c2ecf20Sopenharmony_ci #address-cells = <1>; 4238c2ecf20Sopenharmony_ci #size-cells = <0>; 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ci bus-width = <4>; 4268c2ecf20Sopenharmony_ci cap-sd-highspeed; 4278c2ecf20Sopenharmony_ci sd-uhs-sdr50; 4288c2ecf20Sopenharmony_ci max-frequency = <100000000>; 4298c2ecf20Sopenharmony_ci 4308c2ecf20Sopenharmony_ci non-removable; 4318c2ecf20Sopenharmony_ci disable-wp; 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci /* WiFi firmware requires power to be kept while in suspend */ 4348c2ecf20Sopenharmony_ci keep-power-in-suspend; 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_ci mmc-pwrseq = <&sdio_pwrseq>; 4378c2ecf20Sopenharmony_ci 4388c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4398c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_ao1v8>; 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ci brcmf: wifi@1 { 4428c2ecf20Sopenharmony_ci reg = <1>; 4438c2ecf20Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 4448c2ecf20Sopenharmony_ci }; 4458c2ecf20Sopenharmony_ci}; 4468c2ecf20Sopenharmony_ci 4478c2ecf20Sopenharmony_ci/* SD card */ 4488c2ecf20Sopenharmony_ci&sd_emmc_b { 4498c2ecf20Sopenharmony_ci status = "okay"; 4508c2ecf20Sopenharmony_ci pinctrl-0 = <&sdcard_c_pins>; 4518c2ecf20Sopenharmony_ci pinctrl-1 = <&sdcard_clk_gate_c_pins>; 4528c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ci bus-width = <4>; 4558c2ecf20Sopenharmony_ci cap-sd-highspeed; 4568c2ecf20Sopenharmony_ci max-frequency = <50000000>; 4578c2ecf20Sopenharmony_ci disable-wp; 4588c2ecf20Sopenharmony_ci 4598c2ecf20Sopenharmony_ci cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4608c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4618c2ecf20Sopenharmony_ci vqmmc-supply = <&vddao_3v3>; 4628c2ecf20Sopenharmony_ci}; 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci/* eMMC */ 4658c2ecf20Sopenharmony_ci&sd_emmc_c { 4668c2ecf20Sopenharmony_ci status = "okay"; 4678c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 4688c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 4698c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4708c2ecf20Sopenharmony_ci 4718c2ecf20Sopenharmony_ci bus-width = <8>; 4728c2ecf20Sopenharmony_ci cap-mmc-highspeed; 4738c2ecf20Sopenharmony_ci mmc-ddr-1_8v; 4748c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 4758c2ecf20Sopenharmony_ci max-frequency = <200000000>; 4768c2ecf20Sopenharmony_ci non-removable; 4778c2ecf20Sopenharmony_ci disable-wp; 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 4808c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4818c2ecf20Sopenharmony_ci vqmmc-supply = <&emmc_1v8>; 4828c2ecf20Sopenharmony_ci}; 4838c2ecf20Sopenharmony_ci 4848c2ecf20Sopenharmony_ci&tdmif_a { 4858c2ecf20Sopenharmony_ci pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 4868c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4878c2ecf20Sopenharmony_ci status = "okay"; 4888c2ecf20Sopenharmony_ci 4898c2ecf20Sopenharmony_ci assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 4908c2ecf20Sopenharmony_ci <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 4918c2ecf20Sopenharmony_ci assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 4928c2ecf20Sopenharmony_ci <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 4938c2ecf20Sopenharmony_ci assigned-clock-rates = <0>, <0>; 4948c2ecf20Sopenharmony_ci}; 4958c2ecf20Sopenharmony_ci 4968c2ecf20Sopenharmony_ci&tdmif_b { 4978c2ecf20Sopenharmony_ci status = "okay"; 4988c2ecf20Sopenharmony_ci}; 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ci&tdmin_a { 5018c2ecf20Sopenharmony_ci status = "okay"; 5028c2ecf20Sopenharmony_ci}; 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_ci&tdmin_b { 5058c2ecf20Sopenharmony_ci status = "okay"; 5068c2ecf20Sopenharmony_ci}; 5078c2ecf20Sopenharmony_ci 5088c2ecf20Sopenharmony_ci&tdmout_a { 5098c2ecf20Sopenharmony_ci status = "okay"; 5108c2ecf20Sopenharmony_ci}; 5118c2ecf20Sopenharmony_ci 5128c2ecf20Sopenharmony_ci&tdmout_b { 5138c2ecf20Sopenharmony_ci status = "okay"; 5148c2ecf20Sopenharmony_ci}; 5158c2ecf20Sopenharmony_ci 5168c2ecf20Sopenharmony_ci&toddr_a { 5178c2ecf20Sopenharmony_ci status = "okay"; 5188c2ecf20Sopenharmony_ci}; 5198c2ecf20Sopenharmony_ci 5208c2ecf20Sopenharmony_ci&toddr_b { 5218c2ecf20Sopenharmony_ci status = "okay"; 5228c2ecf20Sopenharmony_ci}; 5238c2ecf20Sopenharmony_ci 5248c2ecf20Sopenharmony_ci&toddr_c { 5258c2ecf20Sopenharmony_ci status = "okay"; 5268c2ecf20Sopenharmony_ci}; 5278c2ecf20Sopenharmony_ci 5288c2ecf20Sopenharmony_ci&tohdmitx { 5298c2ecf20Sopenharmony_ci status = "okay"; 5308c2ecf20Sopenharmony_ci}; 5318c2ecf20Sopenharmony_ci 5328c2ecf20Sopenharmony_ci&uart_A { 5338c2ecf20Sopenharmony_ci status = "okay"; 5348c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 5358c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5368c2ecf20Sopenharmony_ci uart-has-rtscts; 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_ci bluetooth { 5398c2ecf20Sopenharmony_ci compatible = "brcm,bcm43438-bt"; 5408c2ecf20Sopenharmony_ci shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 5418c2ecf20Sopenharmony_ci max-speed = <2000000>; 5428c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 5438c2ecf20Sopenharmony_ci clock-names = "lpo"; 5448c2ecf20Sopenharmony_ci vbat-supply = <&vddao_3v3>; 5458c2ecf20Sopenharmony_ci vddio-supply = <&vddio_ao1v8>; 5468c2ecf20Sopenharmony_ci }; 5478c2ecf20Sopenharmony_ci}; 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ci&uart_AO { 5508c2ecf20Sopenharmony_ci status = "okay"; 5518c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 5528c2ecf20Sopenharmony_ci pinctrl-names = "default"; 5538c2ecf20Sopenharmony_ci}; 5548c2ecf20Sopenharmony_ci 5558c2ecf20Sopenharmony_ci&usb { 5568c2ecf20Sopenharmony_ci status = "okay"; 5578c2ecf20Sopenharmony_ci dr_mode = "host"; 5588c2ecf20Sopenharmony_ci}; 559