18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2018 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/gpio/meson-g12a-gpio.h> 118c2ecf20Sopenharmony_ci#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/ { 148c2ecf20Sopenharmony_ci compatible = "amediatech,x96-max", "amlogic,g12a"; 158c2ecf20Sopenharmony_ci model = "Shenzhen Amediatech Technology Co., Ltd X96 Max"; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci aliases { 188c2ecf20Sopenharmony_ci serial0 = &uart_AO; 198c2ecf20Sopenharmony_ci ethernet0 = ðmac; 208c2ecf20Sopenharmony_ci }; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci spdif_dit: audio-codec-1 { 238c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 248c2ecf20Sopenharmony_ci compatible = "linux,spdif-dit"; 258c2ecf20Sopenharmony_ci status = "okay"; 268c2ecf20Sopenharmony_ci sound-name-prefix = "DIT"; 278c2ecf20Sopenharmony_ci }; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci chosen { 308c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 318c2ecf20Sopenharmony_ci }; 328c2ecf20Sopenharmony_ci memory@0 { 338c2ecf20Sopenharmony_ci device_type = "memory"; 348c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x40000000>; 358c2ecf20Sopenharmony_ci }; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci cvbs-connector { 388c2ecf20Sopenharmony_ci compatible = "composite-video-connector"; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci port { 418c2ecf20Sopenharmony_ci cvbs_connector_in: endpoint { 428c2ecf20Sopenharmony_ci remote-endpoint = <&cvbs_vdac_out>; 438c2ecf20Sopenharmony_ci }; 448c2ecf20Sopenharmony_ci }; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci hdmi-connector { 488c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 498c2ecf20Sopenharmony_ci type = "a"; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci port { 528c2ecf20Sopenharmony_ci hdmi_connector_in: endpoint { 538c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_tx_tmds_out>; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci }; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 598c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 608c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 618c2ecf20Sopenharmony_ci }; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci sdio_pwrseq: sdio-pwrseq { 648c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 658c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 668c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 678c2ecf20Sopenharmony_ci clock-names = "ext_clock"; 688c2ecf20Sopenharmony_ci }; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci flash_1v8: regulator-flash_1v8 { 718c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 728c2ecf20Sopenharmony_ci regulator-name = "FLASH_1V8"; 738c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 748c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 758c2ecf20Sopenharmony_ci vin-supply = <&vcc_3v3>; 768c2ecf20Sopenharmony_ci regulator-always-on; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci dc_in: regulator-dc_in { 808c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 818c2ecf20Sopenharmony_ci regulator-name = "DC_IN"; 828c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 838c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 848c2ecf20Sopenharmony_ci regulator-always-on; 858c2ecf20Sopenharmony_ci }; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci vcc_1v8: regulator-vcc_1v8 { 888c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 898c2ecf20Sopenharmony_ci regulator-name = "VCC_1V8"; 908c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 918c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 928c2ecf20Sopenharmony_ci vin-supply = <&vcc_3v3>; 938c2ecf20Sopenharmony_ci regulator-always-on; 948c2ecf20Sopenharmony_ci }; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci vcc_3v3: regulator-vcc_3v3 { 978c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 988c2ecf20Sopenharmony_ci regulator-name = "VCC_3V3"; 998c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1008c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1018c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1028c2ecf20Sopenharmony_ci regulator-always-on; 1038c2ecf20Sopenharmony_ci /* FIXME: actually controlled by VDDCPU_B_EN */ 1048c2ecf20Sopenharmony_ci }; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci vcc_5v: regulator-vcc_5v { 1078c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1088c2ecf20Sopenharmony_ci regulator-name = "VCC_5V"; 1098c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1108c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1118c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 1148c2ecf20Sopenharmony_ci enable-active-low; 1158c2ecf20Sopenharmony_ci }; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci vddao_1v8: regulator-vddao_1v8 { 1188c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1198c2ecf20Sopenharmony_ci regulator-name = "VDDAO_1V8"; 1208c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1218c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1228c2ecf20Sopenharmony_ci vin-supply = <&vddao_3v3>; 1238c2ecf20Sopenharmony_ci regulator-always-on; 1248c2ecf20Sopenharmony_ci }; 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci vddao_3v3: regulator-vddao_3v3 { 1278c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1288c2ecf20Sopenharmony_ci regulator-name = "VDDAO_3V3"; 1298c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1308c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1318c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 1328c2ecf20Sopenharmony_ci regulator-always-on; 1338c2ecf20Sopenharmony_ci }; 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci vddcpu: regulator-vddcpu { 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 sound { 1528c2ecf20Sopenharmony_ci compatible = "amlogic,axg-sound-card"; 1538c2ecf20Sopenharmony_ci model = "G12A-X96-MAX"; 1548c2ecf20Sopenharmony_ci audio-aux-devs = <&tdmout_b>; 1558c2ecf20Sopenharmony_ci audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 1568c2ecf20Sopenharmony_ci "TDMOUT_B IN 1", "FRDDR_B OUT 1", 1578c2ecf20Sopenharmony_ci "TDMOUT_B IN 2", "FRDDR_C OUT 1", 1588c2ecf20Sopenharmony_ci "TDM_B Playback", "TDMOUT_B OUT", 1598c2ecf20Sopenharmony_ci "SPDIFOUT IN 0", "FRDDR_A OUT 3", 1608c2ecf20Sopenharmony_ci "SPDIFOUT IN 1", "FRDDR_B OUT 3", 1618c2ecf20Sopenharmony_ci "SPDIFOUT IN 2", "FRDDR_C OUT 3"; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci assigned-clocks = <&clkc CLKID_MPLL2>, 1648c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL0>, 1658c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL1>; 1668c2ecf20Sopenharmony_ci assigned-clock-parents = <0>, <0>, <0>; 1678c2ecf20Sopenharmony_ci assigned-clock-rates = <294912000>, 1688c2ecf20Sopenharmony_ci <270950400>, 1698c2ecf20Sopenharmony_ci <393216000>; 1708c2ecf20Sopenharmony_ci status = "okay"; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci dai-link-0 { 1738c2ecf20Sopenharmony_ci sound-dai = <&frddr_a>; 1748c2ecf20Sopenharmony_ci }; 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci dai-link-1 { 1778c2ecf20Sopenharmony_ci sound-dai = <&frddr_b>; 1788c2ecf20Sopenharmony_ci }; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci dai-link-2 { 1818c2ecf20Sopenharmony_ci sound-dai = <&frddr_c>; 1828c2ecf20Sopenharmony_ci }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci /* 8ch hdmi interface */ 1858c2ecf20Sopenharmony_ci dai-link-3 { 1868c2ecf20Sopenharmony_ci sound-dai = <&tdmif_b>; 1878c2ecf20Sopenharmony_ci dai-format = "i2s"; 1888c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-0 = <1 1>; 1898c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-1 = <1 1>; 1908c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-2 = <1 1>; 1918c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-3 = <1 1>; 1928c2ecf20Sopenharmony_ci mclk-fs = <256>; 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci codec { 1958c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 1968c2ecf20Sopenharmony_ci }; 1978c2ecf20Sopenharmony_ci }; 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci /* spdif hdmi or toslink interface */ 2008c2ecf20Sopenharmony_ci dai-link-4 { 2018c2ecf20Sopenharmony_ci sound-dai = <&spdifout>; 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci codec-0 { 2048c2ecf20Sopenharmony_ci sound-dai = <&spdif_dit>; 2058c2ecf20Sopenharmony_ci }; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci codec-1 { 2088c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>; 2098c2ecf20Sopenharmony_ci }; 2108c2ecf20Sopenharmony_ci }; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci /* spdif hdmi interface */ 2138c2ecf20Sopenharmony_ci dai-link-5 { 2148c2ecf20Sopenharmony_ci sound-dai = <&spdifout_b>; 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci codec { 2178c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci }; 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci /* hdmi glue */ 2228c2ecf20Sopenharmony_ci dai-link-6 { 2238c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci codec { 2268c2ecf20Sopenharmony_ci sound-dai = <&hdmi_tx>; 2278c2ecf20Sopenharmony_ci }; 2288c2ecf20Sopenharmony_ci }; 2298c2ecf20Sopenharmony_ci }; 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci wifi32k: wifi32k { 2328c2ecf20Sopenharmony_ci compatible = "pwm-clock"; 2338c2ecf20Sopenharmony_ci #clock-cells = <0>; 2348c2ecf20Sopenharmony_ci clock-frequency = <32768>; 2358c2ecf20Sopenharmony_ci pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 2368c2ecf20Sopenharmony_ci }; 2378c2ecf20Sopenharmony_ci}; 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci&arb { 2408c2ecf20Sopenharmony_ci status = "okay"; 2418c2ecf20Sopenharmony_ci}; 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ci&cec_AO { 2448c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_a_h_pins>; 2458c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2468c2ecf20Sopenharmony_ci status = "disabled"; 2478c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2488c2ecf20Sopenharmony_ci}; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci&cecb_AO { 2518c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_b_h_pins>; 2528c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2538c2ecf20Sopenharmony_ci status = "okay"; 2548c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2558c2ecf20Sopenharmony_ci}; 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci&clkc_audio { 2588c2ecf20Sopenharmony_ci status = "okay"; 2598c2ecf20Sopenharmony_ci}; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci&cpu0 { 2628c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 2638c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 2648c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 2658c2ecf20Sopenharmony_ci clock-latency = <50000>; 2668c2ecf20Sopenharmony_ci}; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci&cpu1 { 2698c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 2708c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 2718c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 2728c2ecf20Sopenharmony_ci clock-latency = <50000>; 2738c2ecf20Sopenharmony_ci}; 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci&cpu2 { 2768c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 2778c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 2788c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 2798c2ecf20Sopenharmony_ci clock-latency = <50000>; 2808c2ecf20Sopenharmony_ci}; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci&cpu3 { 2838c2ecf20Sopenharmony_ci cpu-supply = <&vddcpu>; 2848c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 2858c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 2868c2ecf20Sopenharmony_ci clock-latency = <50000>; 2878c2ecf20Sopenharmony_ci}; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci&cvbs_vdac_port { 2908c2ecf20Sopenharmony_ci cvbs_vdac_out: endpoint { 2918c2ecf20Sopenharmony_ci remote-endpoint = <&cvbs_connector_in>; 2928c2ecf20Sopenharmony_ci }; 2938c2ecf20Sopenharmony_ci}; 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci&frddr_a { 2968c2ecf20Sopenharmony_ci status = "okay"; 2978c2ecf20Sopenharmony_ci}; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci&frddr_b { 3008c2ecf20Sopenharmony_ci status = "okay"; 3018c2ecf20Sopenharmony_ci}; 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci&frddr_c { 3048c2ecf20Sopenharmony_ci status = "okay"; 3058c2ecf20Sopenharmony_ci}; 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci&hdmi_tx { 3088c2ecf20Sopenharmony_ci status = "okay"; 3098c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 3108c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3118c2ecf20Sopenharmony_ci hdmi-supply = <&vcc_5v>; 3128c2ecf20Sopenharmony_ci}; 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port { 3158c2ecf20Sopenharmony_ci hdmi_tx_tmds_out: endpoint { 3168c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_connector_in>; 3178c2ecf20Sopenharmony_ci }; 3188c2ecf20Sopenharmony_ci}; 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci&ir { 3218c2ecf20Sopenharmony_ci status = "okay"; 3228c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 3238c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3248c2ecf20Sopenharmony_ci linux,rc-map-name = "rc-x96max"; 3258c2ecf20Sopenharmony_ci}; 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci&pwm_AO_cd { 3288c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_ao_d_e_pins>; 3298c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3308c2ecf20Sopenharmony_ci clocks = <&xtal>; 3318c2ecf20Sopenharmony_ci clock-names = "clkin1"; 3328c2ecf20Sopenharmony_ci status = "okay"; 3338c2ecf20Sopenharmony_ci}; 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci&ext_mdio { 3368c2ecf20Sopenharmony_ci external_phy: ethernet-phy@0 { 3378c2ecf20Sopenharmony_ci /* Realtek RTL8211F (0x001cc916) */ 3388c2ecf20Sopenharmony_ci reg = <0>; 3398c2ecf20Sopenharmony_ci max-speed = <1000>; 3408c2ecf20Sopenharmony_ci eee-broken-1000t; 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci reset-assert-us = <10000>; 3438c2ecf20Sopenharmony_ci reset-deassert-us = <80000>; 3448c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ci interrupt-parent = <&gpio_intc>; 3478c2ecf20Sopenharmony_ci /* MAC_INTR on GPIOZ_14 */ 3488c2ecf20Sopenharmony_ci interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 3498c2ecf20Sopenharmony_ci }; 3508c2ecf20Sopenharmony_ci}; 3518c2ecf20Sopenharmony_ci 3528c2ecf20Sopenharmony_ciðmac { 3538c2ecf20Sopenharmony_ci pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 3548c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3558c2ecf20Sopenharmony_ci status = "okay"; 3568c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 3578c2ecf20Sopenharmony_ci phy-handle = <&external_phy>; 3588c2ecf20Sopenharmony_ci amlogic,tx-delay-ns = <2>; 3598c2ecf20Sopenharmony_ci}; 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ci&pwm_ef { 3628c2ecf20Sopenharmony_ci status = "okay"; 3638c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_e_pins>; 3648c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3658c2ecf20Sopenharmony_ci clocks = <&xtal>; 3668c2ecf20Sopenharmony_ci clock-names = "clkin0"; 3678c2ecf20Sopenharmony_ci}; 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci&uart_A { 3708c2ecf20Sopenharmony_ci status = "okay"; 3718c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 3728c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3738c2ecf20Sopenharmony_ci uart-has-rtscts; 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ci bluetooth { 3768c2ecf20Sopenharmony_ci compatible = "brcm,bcm43438-bt"; 3778c2ecf20Sopenharmony_ci shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 3788c2ecf20Sopenharmony_ci max-speed = <2000000>; 3798c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 3808c2ecf20Sopenharmony_ci clock-names = "lpo"; 3818c2ecf20Sopenharmony_ci }; 3828c2ecf20Sopenharmony_ci}; 3838c2ecf20Sopenharmony_ci 3848c2ecf20Sopenharmony_ci&uart_AO { 3858c2ecf20Sopenharmony_ci status = "okay"; 3868c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 3878c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3888c2ecf20Sopenharmony_ci}; 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci&usb { 3918c2ecf20Sopenharmony_ci status = "okay"; 3928c2ecf20Sopenharmony_ci dr_mode = "host"; 3938c2ecf20Sopenharmony_ci}; 3948c2ecf20Sopenharmony_ci 3958c2ecf20Sopenharmony_ci/* SDIO */ 3968c2ecf20Sopenharmony_ci&sd_emmc_a { 3978c2ecf20Sopenharmony_ci status = "okay"; 3988c2ecf20Sopenharmony_ci pinctrl-0 = <&sdio_pins>; 3998c2ecf20Sopenharmony_ci pinctrl-1 = <&sdio_clk_gate_pins>; 4008c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4018c2ecf20Sopenharmony_ci #address-cells = <1>; 4028c2ecf20Sopenharmony_ci #size-cells = <0>; 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ci bus-width = <4>; 4058c2ecf20Sopenharmony_ci cap-sd-highspeed; 4068c2ecf20Sopenharmony_ci sd-uhs-sdr50; 4078c2ecf20Sopenharmony_ci max-frequency = <100000000>; 4088c2ecf20Sopenharmony_ci 4098c2ecf20Sopenharmony_ci non-removable; 4108c2ecf20Sopenharmony_ci disable-wp; 4118c2ecf20Sopenharmony_ci 4128c2ecf20Sopenharmony_ci /* WiFi firmware requires power to be kept while in suspend */ 4138c2ecf20Sopenharmony_ci keep-power-in-suspend; 4148c2ecf20Sopenharmony_ci 4158c2ecf20Sopenharmony_ci mmc-pwrseq = <&sdio_pwrseq>; 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4188c2ecf20Sopenharmony_ci vqmmc-supply = <&vddao_1v8>; 4198c2ecf20Sopenharmony_ci 4208c2ecf20Sopenharmony_ci brcmf: wifi@1 { 4218c2ecf20Sopenharmony_ci reg = <1>; 4228c2ecf20Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 4238c2ecf20Sopenharmony_ci }; 4248c2ecf20Sopenharmony_ci}; 4258c2ecf20Sopenharmony_ci 4268c2ecf20Sopenharmony_ci/* SD card */ 4278c2ecf20Sopenharmony_ci&sd_emmc_b { 4288c2ecf20Sopenharmony_ci status = "okay"; 4298c2ecf20Sopenharmony_ci pinctrl-0 = <&sdcard_c_pins>; 4308c2ecf20Sopenharmony_ci pinctrl-1 = <&sdcard_clk_gate_c_pins>; 4318c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci bus-width = <4>; 4348c2ecf20Sopenharmony_ci cap-sd-highspeed; 4358c2ecf20Sopenharmony_ci max-frequency = <100000000>; 4368c2ecf20Sopenharmony_ci disable-wp; 4378c2ecf20Sopenharmony_ci 4388c2ecf20Sopenharmony_ci cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4398c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 4408c2ecf20Sopenharmony_ci vqmmc-supply = <&vddao_3v3>; 4418c2ecf20Sopenharmony_ci}; 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_ci/* eMMC */ 4448c2ecf20Sopenharmony_ci&sd_emmc_c { 4458c2ecf20Sopenharmony_ci status = "okay"; 4468c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 4478c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 4488c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4498c2ecf20Sopenharmony_ci 4508c2ecf20Sopenharmony_ci bus-width = <8>; 4518c2ecf20Sopenharmony_ci cap-mmc-highspeed; 4528c2ecf20Sopenharmony_ci max-frequency = <100000000>; 4538c2ecf20Sopenharmony_ci non-removable; 4548c2ecf20Sopenharmony_ci disable-wp; 4558c2ecf20Sopenharmony_ci 4568c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 4578c2ecf20Sopenharmony_ci vmmc-supply = <&vcc_3v3>; 4588c2ecf20Sopenharmony_ci vqmmc-supply = <&flash_1v8>; 4598c2ecf20Sopenharmony_ci}; 4608c2ecf20Sopenharmony_ci 4618c2ecf20Sopenharmony_ci&spdifout { 4628c2ecf20Sopenharmony_ci pinctrl-0 = <&spdif_out_h_pins>; 4638c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4648c2ecf20Sopenharmony_ci status = "okay"; 4658c2ecf20Sopenharmony_ci}; 4668c2ecf20Sopenharmony_ci 4678c2ecf20Sopenharmony_ci&spdifout_b { 4688c2ecf20Sopenharmony_ci status = "okay"; 4698c2ecf20Sopenharmony_ci}; 4708c2ecf20Sopenharmony_ci 4718c2ecf20Sopenharmony_ci&tdmif_b { 4728c2ecf20Sopenharmony_ci status = "okay"; 4738c2ecf20Sopenharmony_ci}; 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ci&tdmout_b { 4768c2ecf20Sopenharmony_ci status = "okay"; 4778c2ecf20Sopenharmony_ci}; 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci&tohdmitx { 4808c2ecf20Sopenharmony_ci status = "okay"; 4818c2ecf20Sopenharmony_ci}; 482