18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2019 BayLibre, SAS 48c2ecf20Sopenharmony_ci * Author: Neil Armstrong <narmstrong@baylibre.com> 58c2ecf20Sopenharmony_ci * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-g12a-gpio.h> 108c2ecf20Sopenharmony_ci#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci/ { 138c2ecf20Sopenharmony_ci aliases { 148c2ecf20Sopenharmony_ci serial0 = &uart_AO; 158c2ecf20Sopenharmony_ci ethernet0 = ðmac; 168c2ecf20Sopenharmony_ci }; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci chosen { 198c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 208c2ecf20Sopenharmony_ci }; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci memory@0 { 238c2ecf20Sopenharmony_ci device_type = "memory"; 248c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x80000000>; 258c2ecf20Sopenharmony_ci }; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci adc-keys { 288c2ecf20Sopenharmony_ci compatible = "adc-keys"; 298c2ecf20Sopenharmony_ci io-channels = <&saradc 2>; 308c2ecf20Sopenharmony_ci io-channel-names = "buttons"; 318c2ecf20Sopenharmony_ci keyup-threshold-microvolt = <1710000>; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci button-function { 348c2ecf20Sopenharmony_ci label = "Function"; 358c2ecf20Sopenharmony_ci linux,code = <KEY_FN>; 368c2ecf20Sopenharmony_ci press-threshold-microvolt = <10000>; 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci }; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci leds { 418c2ecf20Sopenharmony_ci compatible = "gpio-leds"; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci led-white { 448c2ecf20Sopenharmony_ci label = "vim3:white:sys"; 458c2ecf20Sopenharmony_ci gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; 468c2ecf20Sopenharmony_ci linux,default-trigger = "heartbeat"; 478c2ecf20Sopenharmony_ci }; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci led-red { 508c2ecf20Sopenharmony_ci label = "vim3:red"; 518c2ecf20Sopenharmony_ci gpios = <&gpio_expander 5 GPIO_ACTIVE_HIGH>; 528c2ecf20Sopenharmony_ci }; 538c2ecf20Sopenharmony_ci }; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 568c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 578c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 588c2ecf20Sopenharmony_ci }; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci gpio-keys-polled { 618c2ecf20Sopenharmony_ci compatible = "gpio-keys-polled"; 628c2ecf20Sopenharmony_ci poll-interval = <100>; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci power-button { 658c2ecf20Sopenharmony_ci label = "power"; 668c2ecf20Sopenharmony_ci linux,code = <KEY_POWER>; 678c2ecf20Sopenharmony_ci gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_LOW>; 688c2ecf20Sopenharmony_ci }; 698c2ecf20Sopenharmony_ci }; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci sdio_pwrseq: sdio-pwrseq { 728c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 738c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 748c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 758c2ecf20Sopenharmony_ci clock-names = "ext_clock"; 768c2ecf20Sopenharmony_ci }; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci dc_in: regulator-dc_in { 798c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 808c2ecf20Sopenharmony_ci regulator-name = "DC_IN"; 818c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 828c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 838c2ecf20Sopenharmony_ci regulator-always-on; 848c2ecf20Sopenharmony_ci }; 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci vcc_5v: regulator-vcc_5v { 878c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 888c2ecf20Sopenharmony_ci regulator-name = "VCC_5V"; 898c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 908c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 918c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 948c2ecf20Sopenharmony_ci enable-active-high; 958c2ecf20Sopenharmony_ci }; 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci vcc_1v8: regulator-vcc_1v8 { 988c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 998c2ecf20Sopenharmony_ci regulator-name = "VCC_1V8"; 1008c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1018c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1028c2ecf20Sopenharmony_ci vin-supply = <&vcc_3v3>; 1038c2ecf20Sopenharmony_ci regulator-always-on; 1048c2ecf20Sopenharmony_ci }; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci vcc_3v3: regulator-vcc_3v3 { 1078c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1088c2ecf20Sopenharmony_ci regulator-name = "VCC_3V3"; 1098c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1108c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1118c2ecf20Sopenharmony_ci vin-supply = <&vsys_3v3>; 1128c2ecf20Sopenharmony_ci regulator-always-on; 1138c2ecf20Sopenharmony_ci /* FIXME: actually controlled by VDDCPU_B_EN */ 1148c2ecf20Sopenharmony_ci }; 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci vddao_1v8: regulator-vddao_1v8 { 1178c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1188c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO1V8"; 1198c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1208c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1218c2ecf20Sopenharmony_ci vin-supply = <&vsys_3v3>; 1228c2ecf20Sopenharmony_ci regulator-always-on; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci emmc_1v8: regulator-emmc_1v8 { 1268c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1278c2ecf20Sopenharmony_ci regulator-name = "EMMC_AO1V8"; 1288c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1298c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1308c2ecf20Sopenharmony_ci vin-supply = <&vcc_3v3>; 1318c2ecf20Sopenharmony_ci regulator-always-on; 1328c2ecf20Sopenharmony_ci }; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci vsys_3v3: regulator-vsys_3v3 { 1358c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1368c2ecf20Sopenharmony_ci regulator-name = "VSYS_3V3"; 1378c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1388c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1398c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 1408c2ecf20Sopenharmony_ci regulator-always-on; 1418c2ecf20Sopenharmony_ci }; 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci usb_pwr: regulator-usb_pwr { 1448c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1458c2ecf20Sopenharmony_ci regulator-name = "USB_PWR"; 1468c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1478c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1488c2ecf20Sopenharmony_ci vin-supply = <&vcc_5v>; 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci gpio = <&gpio GPIOA_6 GPIO_ACTIVE_HIGH>; 1518c2ecf20Sopenharmony_ci enable-active-high; 1528c2ecf20Sopenharmony_ci }; 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci hdmi-connector { 1558c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 1568c2ecf20Sopenharmony_ci type = "a"; 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci port { 1598c2ecf20Sopenharmony_ci hdmi_connector_in: endpoint { 1608c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_tx_tmds_out>; 1618c2ecf20Sopenharmony_ci }; 1628c2ecf20Sopenharmony_ci }; 1638c2ecf20Sopenharmony_ci }; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci sound { 1678c2ecf20Sopenharmony_ci compatible = "amlogic,axg-sound-card"; 1688c2ecf20Sopenharmony_ci model = "G12B-KHADAS-VIM3"; 1698c2ecf20Sopenharmony_ci audio-aux-devs = <&tdmout_a>; 1708c2ecf20Sopenharmony_ci audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 1718c2ecf20Sopenharmony_ci "TDMOUT_A IN 1", "FRDDR_B OUT 0", 1728c2ecf20Sopenharmony_ci "TDMOUT_A IN 2", "FRDDR_C OUT 0", 1738c2ecf20Sopenharmony_ci "TDM_A Playback", "TDMOUT_A OUT"; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci assigned-clocks = <&clkc CLKID_MPLL2>, 1768c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL0>, 1778c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL1>; 1788c2ecf20Sopenharmony_ci assigned-clock-parents = <0>, <0>, <0>; 1798c2ecf20Sopenharmony_ci assigned-clock-rates = <294912000>, 1808c2ecf20Sopenharmony_ci <270950400>, 1818c2ecf20Sopenharmony_ci <393216000>; 1828c2ecf20Sopenharmony_ci status = "okay"; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci dai-link-0 { 1858c2ecf20Sopenharmony_ci sound-dai = <&frddr_a>; 1868c2ecf20Sopenharmony_ci }; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci dai-link-1 { 1898c2ecf20Sopenharmony_ci sound-dai = <&frddr_b>; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci dai-link-2 { 1938c2ecf20Sopenharmony_ci sound-dai = <&frddr_c>; 1948c2ecf20Sopenharmony_ci }; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci /* 8ch hdmi interface */ 1978c2ecf20Sopenharmony_ci dai-link-3 { 1988c2ecf20Sopenharmony_ci sound-dai = <&tdmif_a>; 1998c2ecf20Sopenharmony_ci dai-format = "i2s"; 2008c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-0 = <1 1>; 2018c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-1 = <1 1>; 2028c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-2 = <1 1>; 2038c2ecf20Sopenharmony_ci dai-tdm-slot-tx-mask-3 = <1 1>; 2048c2ecf20Sopenharmony_ci mclk-fs = <256>; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci codec { 2078c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 2088c2ecf20Sopenharmony_ci }; 2098c2ecf20Sopenharmony_ci }; 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci /* hdmi glue */ 2128c2ecf20Sopenharmony_ci dai-link-4 { 2138c2ecf20Sopenharmony_ci sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci codec { 2168c2ecf20Sopenharmony_ci sound-dai = <&hdmi_tx>; 2178c2ecf20Sopenharmony_ci }; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci }; 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci wifi32k: wifi32k { 2228c2ecf20Sopenharmony_ci compatible = "pwm-clock"; 2238c2ecf20Sopenharmony_ci #clock-cells = <0>; 2248c2ecf20Sopenharmony_ci clock-frequency = <32768>; 2258c2ecf20Sopenharmony_ci pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 2268c2ecf20Sopenharmony_ci }; 2278c2ecf20Sopenharmony_ci}; 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci&arb { 2308c2ecf20Sopenharmony_ci status = "okay"; 2318c2ecf20Sopenharmony_ci}; 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci&clkc_audio { 2348c2ecf20Sopenharmony_ci status = "okay"; 2358c2ecf20Sopenharmony_ci}; 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci&cec_AO { 2388c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_a_h_pins>; 2398c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2408c2ecf20Sopenharmony_ci status = "disabled"; 2418c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2428c2ecf20Sopenharmony_ci}; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci&cecb_AO { 2458c2ecf20Sopenharmony_ci pinctrl-0 = <&cec_ao_b_h_pins>; 2468c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2478c2ecf20Sopenharmony_ci status = "okay"; 2488c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2498c2ecf20Sopenharmony_ci}; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci&cpu_thermal { 2528c2ecf20Sopenharmony_ci trips { 2538c2ecf20Sopenharmony_ci cpu_active: cpu-active { 2548c2ecf20Sopenharmony_ci temperature = <80000>; /* millicelsius */ 2558c2ecf20Sopenharmony_ci hysteresis = <2000>; /* millicelsius */ 2568c2ecf20Sopenharmony_ci type = "active"; 2578c2ecf20Sopenharmony_ci }; 2588c2ecf20Sopenharmony_ci }; 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ci cooling-maps { 2618c2ecf20Sopenharmony_ci map { 2628c2ecf20Sopenharmony_ci trip = <&cpu_active>; 2638c2ecf20Sopenharmony_ci cooling-device = <&khadas_mcu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2648c2ecf20Sopenharmony_ci }; 2658c2ecf20Sopenharmony_ci }; 2668c2ecf20Sopenharmony_ci}; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci&ext_mdio { 2698c2ecf20Sopenharmony_ci external_phy: ethernet-phy@0 { 2708c2ecf20Sopenharmony_ci /* Realtek RTL8211F (0x001cc916) */ 2718c2ecf20Sopenharmony_ci reg = <0>; 2728c2ecf20Sopenharmony_ci max-speed = <1000>; 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci interrupt-parent = <&gpio_intc>; 2758c2ecf20Sopenharmony_ci /* MAC_INTR on GPIOZ_14 */ 2768c2ecf20Sopenharmony_ci interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 2778c2ecf20Sopenharmony_ci }; 2788c2ecf20Sopenharmony_ci}; 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciðmac { 2818c2ecf20Sopenharmony_ci pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 2828c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2838c2ecf20Sopenharmony_ci status = "okay"; 2848c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 2858c2ecf20Sopenharmony_ci phy-handle = <&external_phy>; 2868c2ecf20Sopenharmony_ci amlogic,tx-delay-ns = <2>; 2878c2ecf20Sopenharmony_ci}; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci&frddr_a { 2908c2ecf20Sopenharmony_ci status = "okay"; 2918c2ecf20Sopenharmony_ci}; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci&frddr_b { 2948c2ecf20Sopenharmony_ci status = "okay"; 2958c2ecf20Sopenharmony_ci}; 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci&frddr_c { 2988c2ecf20Sopenharmony_ci status = "okay"; 2998c2ecf20Sopenharmony_ci}; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci&hdmi_tx { 3028c2ecf20Sopenharmony_ci status = "okay"; 3038c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 3048c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3058c2ecf20Sopenharmony_ci hdmi-supply = <&vcc_5v>; 3068c2ecf20Sopenharmony_ci}; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port { 3098c2ecf20Sopenharmony_ci hdmi_tx_tmds_out: endpoint { 3108c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_connector_in>; 3118c2ecf20Sopenharmony_ci }; 3128c2ecf20Sopenharmony_ci}; 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci&i2c_AO { 3158c2ecf20Sopenharmony_ci status = "okay"; 3168c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c_ao_sck_pins>, <&i2c_ao_sda_pins>; 3178c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ci khadas_mcu: system-controller@18 { 3208c2ecf20Sopenharmony_ci compatible = "khadas,mcu"; 3218c2ecf20Sopenharmony_ci reg = <0x18>; 3228c2ecf20Sopenharmony_ci #cooling-cells = <2>; 3238c2ecf20Sopenharmony_ci }; 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci gpio_expander: gpio-controller@20 { 3268c2ecf20Sopenharmony_ci compatible = "ti,tca6408"; 3278c2ecf20Sopenharmony_ci reg = <0x20>; 3288c2ecf20Sopenharmony_ci vcc-supply = <&vcc_3v3>; 3298c2ecf20Sopenharmony_ci gpio-controller; 3308c2ecf20Sopenharmony_ci #gpio-cells = <2>; 3318c2ecf20Sopenharmony_ci }; 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci rtc@51 { 3348c2ecf20Sopenharmony_ci compatible = "haoyu,hym8563"; 3358c2ecf20Sopenharmony_ci reg = <0x51>; 3368c2ecf20Sopenharmony_ci #clock-cells = <0>; 3378c2ecf20Sopenharmony_ci }; 3388c2ecf20Sopenharmony_ci}; 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci&ir { 3418c2ecf20Sopenharmony_ci status = "okay"; 3428c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 3438c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3448c2ecf20Sopenharmony_ci linux,rc-map-name = "rc-khadas"; 3458c2ecf20Sopenharmony_ci}; 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ci&pcie { 3488c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>; 3498c2ecf20Sopenharmony_ci}; 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ci&pwm_ef { 3528c2ecf20Sopenharmony_ci status = "okay"; 3538c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_e_pins>; 3548c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3558c2ecf20Sopenharmony_ci}; 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_ci&saradc { 3588c2ecf20Sopenharmony_ci status = "okay"; 3598c2ecf20Sopenharmony_ci vref-supply = <&vddao_1v8>; 3608c2ecf20Sopenharmony_ci}; 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ci/* SDIO */ 3638c2ecf20Sopenharmony_ci&sd_emmc_a { 3648c2ecf20Sopenharmony_ci status = "okay"; 3658c2ecf20Sopenharmony_ci pinctrl-0 = <&sdio_pins>; 3668c2ecf20Sopenharmony_ci pinctrl-1 = <&sdio_clk_gate_pins>; 3678c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 3688c2ecf20Sopenharmony_ci #address-cells = <1>; 3698c2ecf20Sopenharmony_ci #size-cells = <0>; 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci bus-width = <4>; 3728c2ecf20Sopenharmony_ci cap-sd-highspeed; 3738c2ecf20Sopenharmony_ci max-frequency = <100000000>; 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ci non-removable; 3768c2ecf20Sopenharmony_ci disable-wp; 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci /* WiFi firmware requires power to be kept while in suspend */ 3798c2ecf20Sopenharmony_ci keep-power-in-suspend; 3808c2ecf20Sopenharmony_ci 3818c2ecf20Sopenharmony_ci mmc-pwrseq = <&sdio_pwrseq>; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci vmmc-supply = <&vsys_3v3>; 3848c2ecf20Sopenharmony_ci vqmmc-supply = <&vddao_1v8>; 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_ci brcmf: wifi@1 { 3878c2ecf20Sopenharmony_ci reg = <1>; 3888c2ecf20Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 3898c2ecf20Sopenharmony_ci }; 3908c2ecf20Sopenharmony_ci}; 3918c2ecf20Sopenharmony_ci 3928c2ecf20Sopenharmony_ci/* SD card */ 3938c2ecf20Sopenharmony_ci&sd_emmc_b { 3948c2ecf20Sopenharmony_ci status = "okay"; 3958c2ecf20Sopenharmony_ci pinctrl-0 = <&sdcard_c_pins>; 3968c2ecf20Sopenharmony_ci pinctrl-1 = <&sdcard_clk_gate_c_pins>; 3978c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 3988c2ecf20Sopenharmony_ci 3998c2ecf20Sopenharmony_ci bus-width = <4>; 4008c2ecf20Sopenharmony_ci cap-sd-highspeed; 4018c2ecf20Sopenharmony_ci max-frequency = <50000000>; 4028c2ecf20Sopenharmony_ci disable-wp; 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ci cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4058c2ecf20Sopenharmony_ci vmmc-supply = <&vsys_3v3>; 4068c2ecf20Sopenharmony_ci vqmmc-supply = <&vsys_3v3>; 4078c2ecf20Sopenharmony_ci}; 4088c2ecf20Sopenharmony_ci 4098c2ecf20Sopenharmony_ci/* eMMC */ 4108c2ecf20Sopenharmony_ci&sd_emmc_c { 4118c2ecf20Sopenharmony_ci status = "okay"; 4128c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 4138c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 4148c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ci bus-width = <8>; 4178c2ecf20Sopenharmony_ci cap-mmc-highspeed; 4188c2ecf20Sopenharmony_ci mmc-ddr-1_8v; 4198c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 4208c2ecf20Sopenharmony_ci max-frequency = <200000000>; 4218c2ecf20Sopenharmony_ci disable-wp; 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 4248c2ecf20Sopenharmony_ci vmmc-supply = <&vcc_3v3>; 4258c2ecf20Sopenharmony_ci vqmmc-supply = <&emmc_1v8>; 4268c2ecf20Sopenharmony_ci}; 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ci/* 4298c2ecf20Sopenharmony_ci * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR CS 4308c2ecf20Sopenharmony_ci * and eMMC Data 4 to 7 pins. 4318c2ecf20Sopenharmony_ci * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0, 4328c2ecf20Sopenharmony_ci * and change bus-width to 4 then spifc can be enabled. 4338c2ecf20Sopenharmony_ci */ 4348c2ecf20Sopenharmony_ci&spifc { 4358c2ecf20Sopenharmony_ci status = "disabled"; 4368c2ecf20Sopenharmony_ci pinctrl-0 = <&nor_pins>; 4378c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4388c2ecf20Sopenharmony_ci 4398c2ecf20Sopenharmony_ci w25q128: spi-flash@0 { 4408c2ecf20Sopenharmony_ci #address-cells = <1>; 4418c2ecf20Sopenharmony_ci #size-cells = <1>; 4428c2ecf20Sopenharmony_ci compatible = "winbond,w25q128fw", "jedec,spi-nor"; 4438c2ecf20Sopenharmony_ci reg = <0>; 4448c2ecf20Sopenharmony_ci spi-max-frequency = <104000000>; 4458c2ecf20Sopenharmony_ci }; 4468c2ecf20Sopenharmony_ci}; 4478c2ecf20Sopenharmony_ci 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ci&tdmif_a { 4508c2ecf20Sopenharmony_ci status = "okay"; 4518c2ecf20Sopenharmony_ci}; 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ci&tdmout_a { 4548c2ecf20Sopenharmony_ci status = "okay"; 4558c2ecf20Sopenharmony_ci}; 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_ci&tohdmitx { 4588c2ecf20Sopenharmony_ci status = "okay"; 4598c2ecf20Sopenharmony_ci}; 4608c2ecf20Sopenharmony_ci 4618c2ecf20Sopenharmony_ci&uart_A { 4628c2ecf20Sopenharmony_ci status = "okay"; 4638c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 4648c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4658c2ecf20Sopenharmony_ci uart-has-rtscts; 4668c2ecf20Sopenharmony_ci 4678c2ecf20Sopenharmony_ci bluetooth { 4688c2ecf20Sopenharmony_ci compatible = "brcm,bcm43438-bt"; 4698c2ecf20Sopenharmony_ci shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 4708c2ecf20Sopenharmony_ci max-speed = <2000000>; 4718c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 4728c2ecf20Sopenharmony_ci clock-names = "lpo"; 4738c2ecf20Sopenharmony_ci }; 4748c2ecf20Sopenharmony_ci}; 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci&uart_AO { 4778c2ecf20Sopenharmony_ci status = "okay"; 4788c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 4798c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4808c2ecf20Sopenharmony_ci}; 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ci&usb2_phy0 { 4838c2ecf20Sopenharmony_ci phy-supply = <&dc_in>; 4848c2ecf20Sopenharmony_ci}; 4858c2ecf20Sopenharmony_ci 4868c2ecf20Sopenharmony_ci&usb2_phy1 { 4878c2ecf20Sopenharmony_ci phy-supply = <&usb_pwr>; 4888c2ecf20Sopenharmony_ci}; 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ci&usb3_pcie_phy { 4918c2ecf20Sopenharmony_ci phy-supply = <&usb_pwr>; 4928c2ecf20Sopenharmony_ci}; 4938c2ecf20Sopenharmony_ci 4948c2ecf20Sopenharmony_ci&usb { 4958c2ecf20Sopenharmony_ci status = "okay"; 4968c2ecf20Sopenharmony_ci dr_mode = "peripheral"; 4978c2ecf20Sopenharmony_ci}; 498