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