18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>. 48c2ecf20Sopenharmony_ci * Copyright (c) 2017 BayLibre, SAS 58c2ecf20Sopenharmony_ci * Author: Neil Armstrong <narmstrong@baylibre.com> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/dts-v1/; 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include "meson-gxm.dtsi" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci/ { 158c2ecf20Sopenharmony_ci compatible = "khadas,vim2", "amlogic,s912", "amlogic,meson-gxm"; 168c2ecf20Sopenharmony_ci model = "Khadas VIM2"; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci aliases { 198c2ecf20Sopenharmony_ci serial0 = &uart_AO; 208c2ecf20Sopenharmony_ci serial2 = &uart_AO_B; 218c2ecf20Sopenharmony_ci }; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci chosen { 248c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 258c2ecf20Sopenharmony_ci }; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci memory@0 { 288c2ecf20Sopenharmony_ci device_type = "memory"; 298c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x80000000>; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci adc-keys { 338c2ecf20Sopenharmony_ci compatible = "adc-keys"; 348c2ecf20Sopenharmony_ci io-channels = <&saradc 0>; 358c2ecf20Sopenharmony_ci io-channel-names = "buttons"; 368c2ecf20Sopenharmony_ci keyup-threshold-microvolt = <1710000>; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci button-function { 398c2ecf20Sopenharmony_ci label = "Function"; 408c2ecf20Sopenharmony_ci linux,code = <KEY_FN>; 418c2ecf20Sopenharmony_ci press-threshold-microvolt = <10000>; 428c2ecf20Sopenharmony_ci }; 438c2ecf20Sopenharmony_ci }; 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 468c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 478c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 488c2ecf20Sopenharmony_ci }; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci gpio_fan: gpio-fan { 518c2ecf20Sopenharmony_ci compatible = "gpio-fan"; 528c2ecf20Sopenharmony_ci gpios = <&gpio GPIODV_14 GPIO_ACTIVE_HIGH 538c2ecf20Sopenharmony_ci &gpio GPIODV_15 GPIO_ACTIVE_HIGH>; 548c2ecf20Sopenharmony_ci /* Dummy RPM values since fan is optional */ 558c2ecf20Sopenharmony_ci gpio-fan,speed-map = <0 0 568c2ecf20Sopenharmony_ci 1 1 578c2ecf20Sopenharmony_ci 2 2 588c2ecf20Sopenharmony_ci 3 3>; 598c2ecf20Sopenharmony_ci #cooling-cells = <2>; 608c2ecf20Sopenharmony_ci }; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci gpio-keys-polled { 638c2ecf20Sopenharmony_ci compatible = "gpio-keys-polled"; 648c2ecf20Sopenharmony_ci poll-interval = <100>; 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci power-button { 678c2ecf20Sopenharmony_ci label = "power"; 688c2ecf20Sopenharmony_ci linux,code = <KEY_POWER>; 698c2ecf20Sopenharmony_ci gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 708c2ecf20Sopenharmony_ci }; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci hdmi-connector { 748c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 758c2ecf20Sopenharmony_ci type = "a"; 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci port { 788c2ecf20Sopenharmony_ci hdmi_connector_in: endpoint { 798c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_tx_tmds_out>; 808c2ecf20Sopenharmony_ci }; 818c2ecf20Sopenharmony_ci }; 828c2ecf20Sopenharmony_ci }; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci pwmleds { 858c2ecf20Sopenharmony_ci compatible = "pwm-leds"; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci power { 888c2ecf20Sopenharmony_ci label = "vim:red:power"; 898c2ecf20Sopenharmony_ci pwms = <&pwm_AO_ab 1 7812500 0>; 908c2ecf20Sopenharmony_ci max-brightness = <255>; 918c2ecf20Sopenharmony_ci linux,default-trigger = "default-on"; 928c2ecf20Sopenharmony_ci }; 938c2ecf20Sopenharmony_ci }; 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci sdio_pwrseq: sdio-pwrseq { 968c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 978c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 988c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 998c2ecf20Sopenharmony_ci clock-names = "ext_clock"; 1008c2ecf20Sopenharmony_ci }; 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci hdmi_5v: regulator-hdmi-5v { 1038c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci regulator-name = "HDMI_5V"; 1068c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1078c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 1108c2ecf20Sopenharmony_ci enable-active-high; 1118c2ecf20Sopenharmony_ci regulator-always-on; 1128c2ecf20Sopenharmony_ci }; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci vcc_3v3: regulator-vcc_3v3 { 1158c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1168c2ecf20Sopenharmony_ci regulator-name = "VCC_3V3"; 1178c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1188c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1198c2ecf20Sopenharmony_ci }; 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci vddio_ao18: regulator-vddio_ao18 { 1228c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1238c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO18"; 1248c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1258c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1268c2ecf20Sopenharmony_ci }; 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci vddio_boot: regulator-vddio_boot { 1298c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1308c2ecf20Sopenharmony_ci regulator-name = "VDDIO_BOOT"; 1318c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1328c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1338c2ecf20Sopenharmony_ci }; 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci vddao_3v3: regulator-vddao_3v3 { 1368c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1378c2ecf20Sopenharmony_ci regulator-name = "VDDAO_3V3"; 1388c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1398c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1408c2ecf20Sopenharmony_ci }; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci wifi32k: wifi32k { 1438c2ecf20Sopenharmony_ci compatible = "pwm-clock"; 1448c2ecf20Sopenharmony_ci #clock-cells = <0>; 1458c2ecf20Sopenharmony_ci clock-frequency = <32768>; 1468c2ecf20Sopenharmony_ci pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1478c2ecf20Sopenharmony_ci }; 1488c2ecf20Sopenharmony_ci}; 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci&cec_AO { 1518c2ecf20Sopenharmony_ci status = "okay"; 1528c2ecf20Sopenharmony_ci pinctrl-0 = <&ao_cec_pins>; 1538c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1548c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 1558c2ecf20Sopenharmony_ci}; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci&cpu_cooling_maps { 1598c2ecf20Sopenharmony_ci map0 { 1608c2ecf20Sopenharmony_ci cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>; 1618c2ecf20Sopenharmony_ci }; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci map1 { 1648c2ecf20Sopenharmony_ci cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>, 1658c2ecf20Sopenharmony_ci <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1668c2ecf20Sopenharmony_ci <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1678c2ecf20Sopenharmony_ci <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1688c2ecf20Sopenharmony_ci <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1698c2ecf20Sopenharmony_ci <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1708c2ecf20Sopenharmony_ci <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1718c2ecf20Sopenharmony_ci <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1728c2ecf20Sopenharmony_ci <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1738c2ecf20Sopenharmony_ci }; 1748c2ecf20Sopenharmony_ci}; 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciðmac { 1778c2ecf20Sopenharmony_ci pinctrl-0 = <ð_pins>; 1788c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci /* Select external PHY by default */ 1818c2ecf20Sopenharmony_ci phy-handle = <&external_phy>; 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci amlogic,tx-delay-ns = <2>; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci /* External PHY is in RGMII */ 1868c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci status = "okay"; 1898c2ecf20Sopenharmony_ci}; 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci&external_mdio { 1928c2ecf20Sopenharmony_ci external_phy: ethernet-phy@0 { 1938c2ecf20Sopenharmony_ci /* Realtek RTL8211F (0x001cc916) */ 1948c2ecf20Sopenharmony_ci reg = <0>; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci reset-assert-us = <10000>; 1978c2ecf20Sopenharmony_ci reset-deassert-us = <80000>; 1988c2ecf20Sopenharmony_ci reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci interrupt-parent = <&gpio_intc>; 2018c2ecf20Sopenharmony_ci /* MAC_INTR on GPIOZ_15 */ 2028c2ecf20Sopenharmony_ci interrupts = <25 IRQ_TYPE_LEVEL_LOW>; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci}; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci&hdmi_tx { 2078c2ecf20Sopenharmony_ci status = "okay"; 2088c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 2098c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2108c2ecf20Sopenharmony_ci hdmi-supply = <&hdmi_5v>; 2118c2ecf20Sopenharmony_ci}; 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port { 2148c2ecf20Sopenharmony_ci hdmi_tx_tmds_out: endpoint { 2158c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_connector_in>; 2168c2ecf20Sopenharmony_ci }; 2178c2ecf20Sopenharmony_ci}; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci&i2c_A { 2208c2ecf20Sopenharmony_ci status = "okay"; 2218c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c_a_pins>; 2228c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2238c2ecf20Sopenharmony_ci}; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci&i2c_B { 2268c2ecf20Sopenharmony_ci status = "okay"; 2278c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c_b_pins>; 2288c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci rtc: rtc@51 { 2318c2ecf20Sopenharmony_ci /* has to be enabled manually when a battery is connected: */ 2328c2ecf20Sopenharmony_ci status = "disabled"; 2338c2ecf20Sopenharmony_ci compatible = "haoyu,hym8563"; 2348c2ecf20Sopenharmony_ci reg = <0x51>; 2358c2ecf20Sopenharmony_ci #clock-cells = <0>; 2368c2ecf20Sopenharmony_ci clock-frequency = <32768>; 2378c2ecf20Sopenharmony_ci clock-output-names = "xin32k"; 2388c2ecf20Sopenharmony_ci }; 2398c2ecf20Sopenharmony_ci}; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci&ir { 2428c2ecf20Sopenharmony_ci status = "okay"; 2438c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 2448c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2458c2ecf20Sopenharmony_ci linux,rc-map-name = "rc-khadas"; 2468c2ecf20Sopenharmony_ci}; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci&pwm_AO_ab { 2498c2ecf20Sopenharmony_ci status = "okay"; 2508c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 2518c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2528c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_FCLK_DIV4>; 2538c2ecf20Sopenharmony_ci clock-names = "clkin0"; 2548c2ecf20Sopenharmony_ci}; 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci&pwm_ef { 2578c2ecf20Sopenharmony_ci status = "okay"; 2588c2ecf20Sopenharmony_ci pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; 2598c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2608c2ecf20Sopenharmony_ci clocks = <&clkc CLKID_FCLK_DIV4>; 2618c2ecf20Sopenharmony_ci clock-names = "clkin0"; 2628c2ecf20Sopenharmony_ci}; 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci&sd_emmc_a { 2658c2ecf20Sopenharmony_ci status = "okay"; 2668c2ecf20Sopenharmony_ci pinctrl-0 = <&sdio_pins>; 2678c2ecf20Sopenharmony_ci pinctrl-1 = <&sdio_clk_gate_pins>; 2688c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 2698c2ecf20Sopenharmony_ci #address-cells = <1>; 2708c2ecf20Sopenharmony_ci #size-cells = <0>; 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci bus-width = <4>; 2738c2ecf20Sopenharmony_ci max-frequency = <60000000>; 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci non-removable; 2768c2ecf20Sopenharmony_ci disable-wp; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci /* WiFi firmware requires power to be kept while in suspend */ 2798c2ecf20Sopenharmony_ci keep-power-in-suspend; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci mmc-pwrseq = <&sdio_pwrseq>; 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 2848c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_boot>; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci brcmf: wifi@1 { 2878c2ecf20Sopenharmony_ci reg = <1>; 2888c2ecf20Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 2898c2ecf20Sopenharmony_ci }; 2908c2ecf20Sopenharmony_ci}; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci/* SD card */ 2938c2ecf20Sopenharmony_ci&sd_emmc_b { 2948c2ecf20Sopenharmony_ci status = "okay"; 2958c2ecf20Sopenharmony_ci pinctrl-0 = <&sdcard_pins>; 2968c2ecf20Sopenharmony_ci pinctrl-1 = <&sdcard_clk_gate_pins>; 2978c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci bus-width = <4>; 3008c2ecf20Sopenharmony_ci cap-sd-highspeed; 3018c2ecf20Sopenharmony_ci max-frequency = <50000000>; 3028c2ecf20Sopenharmony_ci disable-wp; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci vmmc-supply = <&vddao_3v3>; 3078c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_boot>; 3088c2ecf20Sopenharmony_ci}; 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci/* eMMC */ 3118c2ecf20Sopenharmony_ci&sd_emmc_c { 3128c2ecf20Sopenharmony_ci status = "okay"; 3138c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 3148c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 3158c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ci bus-width = <8>; 3188c2ecf20Sopenharmony_ci cap-mmc-highspeed; 3198c2ecf20Sopenharmony_ci max-frequency = <200000000>; 3208c2ecf20Sopenharmony_ci non-removable; 3218c2ecf20Sopenharmony_ci disable-wp; 3228c2ecf20Sopenharmony_ci mmc-ddr-1_8v; 3238c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 3268c2ecf20Sopenharmony_ci vmmc-supply = <&vcc_3v3>; 3278c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_boot>; 3288c2ecf20Sopenharmony_ci}; 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci/* 3318c2ecf20Sopenharmony_ci * EMMC_DS pin is shared between SPI NOR CS and eMMC Data Strobe 3328c2ecf20Sopenharmony_ci * Remove emmc_ds_pins from sd_emmc_c pinctrl-0 then spifc can be enabled 3338c2ecf20Sopenharmony_ci */ 3348c2ecf20Sopenharmony_ci&spifc { 3358c2ecf20Sopenharmony_ci status = "disabled"; 3368c2ecf20Sopenharmony_ci pinctrl-0 = <&nor_pins>; 3378c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_ci w25q32: spi-flash@0 { 3408c2ecf20Sopenharmony_ci #address-cells = <1>; 3418c2ecf20Sopenharmony_ci #size-cells = <1>; 3428c2ecf20Sopenharmony_ci compatible = "winbond,w25q16", "jedec,spi-nor"; 3438c2ecf20Sopenharmony_ci reg = <0>; 3448c2ecf20Sopenharmony_ci spi-max-frequency = <104000000>; 3458c2ecf20Sopenharmony_ci }; 3468c2ecf20Sopenharmony_ci}; 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ci/* This one is connected to the Bluetooth module */ 3498c2ecf20Sopenharmony_ci&uart_A { 3508c2ecf20Sopenharmony_ci status = "okay"; 3518c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 3528c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3538c2ecf20Sopenharmony_ci uart-has-rtscts; 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci bluetooth { 3568c2ecf20Sopenharmony_ci compatible = "brcm,bcm43438-bt"; 3578c2ecf20Sopenharmony_ci shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 3588c2ecf20Sopenharmony_ci max-speed = <2000000>; 3598c2ecf20Sopenharmony_ci clocks = <&wifi32k>; 3608c2ecf20Sopenharmony_ci clock-names = "lpo"; 3618c2ecf20Sopenharmony_ci }; 3628c2ecf20Sopenharmony_ci}; 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ci/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 3658c2ecf20Sopenharmony_ci&uart_AO { 3668c2ecf20Sopenharmony_ci status = "okay"; 3678c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 3688c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3698c2ecf20Sopenharmony_ci}; 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 3728c2ecf20Sopenharmony_ci&uart_AO_B { 3738c2ecf20Sopenharmony_ci status = "okay"; 3748c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_b_pins>; 3758c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3768c2ecf20Sopenharmony_ci}; 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci&saradc { 3798c2ecf20Sopenharmony_ci status = "okay"; 3808c2ecf20Sopenharmony_ci vref-supply = <&vddio_ao18>; 3818c2ecf20Sopenharmony_ci}; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci&usb { 3848c2ecf20Sopenharmony_ci status = "okay"; 3858c2ecf20Sopenharmony_ci dr_mode = "peripheral"; 3868c2ecf20Sopenharmony_ci}; 387