18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2020 BayLibre, SAS. 48c2ecf20Sopenharmony_ci * Author: Jerome Brunet <jbrunet@baylibre.com> 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci/dts-v1/; 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 108c2ecf20Sopenharmony_ci#include <dt-bindings/leds/common.h> 118c2ecf20Sopenharmony_ci#include <dt-bindings/sound/meson-aiu.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include "meson-gxl-s905x.dtsi" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/ { 168c2ecf20Sopenharmony_ci compatible = "libretech,aml-s905x-cc-v2", "amlogic,s905x", 178c2ecf20Sopenharmony_ci "amlogic,meson-gxl"; 188c2ecf20Sopenharmony_ci model = "Libre Computer AML-S905X-CC V2"; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci aliases { 218c2ecf20Sopenharmony_ci serial0 = &uart_AO; 228c2ecf20Sopenharmony_ci ethernet0 = ðmac; 238c2ecf20Sopenharmony_ci spi0 = &spifc; 248c2ecf20Sopenharmony_ci }; 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci chosen { 278c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 288c2ecf20Sopenharmony_ci }; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci emmc_pwrseq: emmc-pwrseq { 318c2ecf20Sopenharmony_ci compatible = "mmc-pwrseq-emmc"; 328c2ecf20Sopenharmony_ci reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 338c2ecf20Sopenharmony_ci }; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci hdmi-connector { 368c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 378c2ecf20Sopenharmony_ci type = "a"; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci port { 408c2ecf20Sopenharmony_ci hdmi_connector_in: endpoint { 418c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_tx_tmds_out>; 428c2ecf20Sopenharmony_ci }; 438c2ecf20Sopenharmony_ci }; 448c2ecf20Sopenharmony_ci }; 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci leds { 478c2ecf20Sopenharmony_ci compatible = "gpio-leds"; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci led-blue { 508c2ecf20Sopenharmony_ci color = <LED_COLOR_ID_BLUE>; 518c2ecf20Sopenharmony_ci function = LED_FUNCTION_STATUS; 528c2ecf20Sopenharmony_ci gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 538c2ecf20Sopenharmony_ci linux,default-trigger = "heartbeat"; 548c2ecf20Sopenharmony_ci panic-indicator; 558c2ecf20Sopenharmony_ci }; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci led-green { 588c2ecf20Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 598c2ecf20Sopenharmony_ci function = LED_FUNCTION_DISK_ACTIVITY; 608c2ecf20Sopenharmony_ci gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 618c2ecf20Sopenharmony_ci linux,default-trigger = "disk-activity"; 628c2ecf20Sopenharmony_ci }; 638c2ecf20Sopenharmony_ci }; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci memory@0 { 668c2ecf20Sopenharmony_ci device_type = "memory"; 678c2ecf20Sopenharmony_ci reg = <0x0 0x0 0x0 0x80000000>; 688c2ecf20Sopenharmony_ci }; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci ao_5v: regulator-ao_5v { 718c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 728c2ecf20Sopenharmony_ci regulator-name = "AO_5V"; 738c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 748c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 758c2ecf20Sopenharmony_ci vin-supply = <&dc_in>; 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 888c2ecf20Sopenharmony_ci vcck: regulator-vcck { 898c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 908c2ecf20Sopenharmony_ci regulator-name = "VCCK"; 918c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 928c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 938c2ecf20Sopenharmony_ci vin-supply = <&ao_5v>; 948c2ecf20Sopenharmony_ci regulator-always-on; 958c2ecf20Sopenharmony_ci }; 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci vcc_card: regulator-vcc_card { 988c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 998c2ecf20Sopenharmony_ci regulator-name = "VCC_CARD"; 1008c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1018c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1028c2ecf20Sopenharmony_ci vin-supply = <&vddio_ao3v3>; 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci gpio = <&gpio GPIOCLK_1 GPIO_ACTIVE_HIGH>; 1058c2ecf20Sopenharmony_ci enable-active-high; 1068c2ecf20Sopenharmony_ci }; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci vcc5v: regulator-vcc5v { 1098c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1108c2ecf20Sopenharmony_ci regulator-name = "VCC5V"; 1118c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 1128c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 1138c2ecf20Sopenharmony_ci vin-supply = <&ao_5v>; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; 1168c2ecf20Sopenharmony_ci }; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci vddio_ao3v3: regulator-vddio_ao3v3 { 1198c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1208c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO3V3"; 1218c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1228c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1238c2ecf20Sopenharmony_ci vin-supply = <&ao_5v>; 1248c2ecf20Sopenharmony_ci regulator-always-on; 1258c2ecf20Sopenharmony_ci }; 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci vddio_card: regulator-vddio-card { 1298c2ecf20Sopenharmony_ci compatible = "regulator-gpio"; 1308c2ecf20Sopenharmony_ci regulator-name = "VDDIO_CARD"; 1318c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1328c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 1358c2ecf20Sopenharmony_ci gpios-states = <0>; 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci states = <3300000 0>, 1388c2ecf20Sopenharmony_ci <1800000 1>; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci regulator-settling-time-up-us = <200>; 1418c2ecf20Sopenharmony_ci regulator-settling-time-down-us = <50000>; 1428c2ecf20Sopenharmony_ci }; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci vddio_ao18: regulator-vddio_ao18 { 1458c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1468c2ecf20Sopenharmony_ci regulator-name = "VDDIO_AO18"; 1478c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1488c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1498c2ecf20Sopenharmony_ci vin-supply = <&vddio_ao3v3>; 1508c2ecf20Sopenharmony_ci regulator-always-on; 1518c2ecf20Sopenharmony_ci }; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci vcc_1v8: regulator-vcc_1v8 { 1548c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1558c2ecf20Sopenharmony_ci regulator-name = "VCC 1V8"; 1568c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1578c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 1588c2ecf20Sopenharmony_ci vin-supply = <&vddio_ao3v3>; 1598c2ecf20Sopenharmony_ci regulator-always-on; 1608c2ecf20Sopenharmony_ci }; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci sound { 1638c2ecf20Sopenharmony_ci compatible = "amlogic,gx-sound-card"; 1648c2ecf20Sopenharmony_ci model = "GXL-LIBRETECH-S905X-CC-V2"; 1658c2ecf20Sopenharmony_ci assigned-clocks = <&clkc CLKID_MPLL0>, 1668c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL1>, 1678c2ecf20Sopenharmony_ci <&clkc CLKID_MPLL2>; 1688c2ecf20Sopenharmony_ci assigned-clock-parents = <0>, <0>, <0>; 1698c2ecf20Sopenharmony_ci assigned-clock-rates = <294912000>, 1708c2ecf20Sopenharmony_ci <270950400>, 1718c2ecf20Sopenharmony_ci <393216000>; 1728c2ecf20Sopenharmony_ci status = "okay"; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci dai-link-0 { 1758c2ecf20Sopenharmony_ci sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 1768c2ecf20Sopenharmony_ci }; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci dai-link-1 { 1798c2ecf20Sopenharmony_ci sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 1808c2ecf20Sopenharmony_ci dai-format = "i2s"; 1818c2ecf20Sopenharmony_ci mclk-fs = <256>; 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci codec-0 { 1848c2ecf20Sopenharmony_ci sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 1858c2ecf20Sopenharmony_ci }; 1868c2ecf20Sopenharmony_ci }; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci dai-link-2 { 1898c2ecf20Sopenharmony_ci sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci codec-0 { 1928c2ecf20Sopenharmony_ci sound-dai = <&hdmi_tx>; 1938c2ecf20Sopenharmony_ci }; 1948c2ecf20Sopenharmony_ci }; 1958c2ecf20Sopenharmony_ci }; 1968c2ecf20Sopenharmony_ci}; 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci&aiu { 2008c2ecf20Sopenharmony_ci status = "okay"; 2018c2ecf20Sopenharmony_ci}; 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci&cec_AO { 2048c2ecf20Sopenharmony_ci status = "okay"; 2058c2ecf20Sopenharmony_ci pinctrl-0 = <&ao_cec_pins>; 2068c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2078c2ecf20Sopenharmony_ci hdmi-phandle = <&hdmi_tx>; 2088c2ecf20Sopenharmony_ci}; 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ciðmac { 2128c2ecf20Sopenharmony_ci status = "okay"; 2138c2ecf20Sopenharmony_ci}; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci&internal_phy { 2168c2ecf20Sopenharmony_ci pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 2178c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2188c2ecf20Sopenharmony_ci}; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci&ir { 2218c2ecf20Sopenharmony_ci status = "okay"; 2228c2ecf20Sopenharmony_ci pinctrl-0 = <&remote_input_ao_pins>; 2238c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2248c2ecf20Sopenharmony_ci}; 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci&hdmi_tx { 2278c2ecf20Sopenharmony_ci status = "okay"; 2288c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 2298c2ecf20Sopenharmony_ci hdmi-supply = <&vcc5v>; 2308c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2318c2ecf20Sopenharmony_ci}; 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port { 2348c2ecf20Sopenharmony_ci hdmi_tx_tmds_out: endpoint { 2358c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_connector_in>; 2368c2ecf20Sopenharmony_ci }; 2378c2ecf20Sopenharmony_ci}; 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci&saradc { 2408c2ecf20Sopenharmony_ci status = "okay"; 2418c2ecf20Sopenharmony_ci vref-supply = <&vddio_ao18>; 2428c2ecf20Sopenharmony_ci}; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci/* SD card */ 2458c2ecf20Sopenharmony_ci&sd_emmc_b { 2468c2ecf20Sopenharmony_ci pinctrl-0 = <&sdcard_pins>; 2478c2ecf20Sopenharmony_ci pinctrl-1 = <&sdcard_clk_gate_pins>; 2488c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci bus-width = <4>; 2518c2ecf20Sopenharmony_ci cap-sd-highspeed; 2528c2ecf20Sopenharmony_ci sd-uhs-sdr12; 2538c2ecf20Sopenharmony_ci sd-uhs-sdr25; 2548c2ecf20Sopenharmony_ci sd-uhs-sdr50; 2558c2ecf20Sopenharmony_ci sd-uhs-ddr50; 2568c2ecf20Sopenharmony_ci max-frequency = <100000000>; 2578c2ecf20Sopenharmony_ci disable-wp; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci vmmc-supply = <&vcc_card>; 2628c2ecf20Sopenharmony_ci vqmmc-supply = <&vddio_card>; 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci status = "okay"; 2658c2ecf20Sopenharmony_ci}; 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci/* eMMC */ 2688c2ecf20Sopenharmony_ci&sd_emmc_c { 2698c2ecf20Sopenharmony_ci pinctrl-0 = <&emmc_pins>; 2708c2ecf20Sopenharmony_ci pinctrl-1 = <&emmc_clk_gate_pins>; 2718c2ecf20Sopenharmony_ci pinctrl-names = "default", "clk-gate"; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci bus-width = <8>; 2748c2ecf20Sopenharmony_ci cap-mmc-highspeed; 2758c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 2768c2ecf20Sopenharmony_ci max-frequency = <200000000>; 2778c2ecf20Sopenharmony_ci disable-wp; 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci mmc-pwrseq = <&emmc_pwrseq>; 2808c2ecf20Sopenharmony_ci vmmc-supply = <&vddio_ao3v3>; 2818c2ecf20Sopenharmony_ci vqmmc-supply = <&vcc_1v8>; 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci status = "okay"; 2848c2ecf20Sopenharmony_ci}; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci&spifc { 2878c2ecf20Sopenharmony_ci status = "okay"; 2888c2ecf20Sopenharmony_ci pinctrl-0 = <&nor_pins>; 2898c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci nor_4u1: spi-flash@0 { 2928c2ecf20Sopenharmony_ci #address-cells = <1>; 2938c2ecf20Sopenharmony_ci #size-cells = <1>; 2948c2ecf20Sopenharmony_ci compatible = "jedec,spi-nor"; 2958c2ecf20Sopenharmony_ci reg = <0>; 2968c2ecf20Sopenharmony_ci spi-max-frequency = <3000000>; 2978c2ecf20Sopenharmony_ci }; 2988c2ecf20Sopenharmony_ci}; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci&uart_AO { 3018c2ecf20Sopenharmony_ci status = "okay"; 3028c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_ao_a_pins>; 3038c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3048c2ecf20Sopenharmony_ci}; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci&usb { 3078c2ecf20Sopenharmony_ci status = "okay"; 3088c2ecf20Sopenharmony_ci dr_mode = "host"; 3098c2ecf20Sopenharmony_ci}; 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci&usb2_phy0 { 3128c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3138c2ecf20Sopenharmony_ci phy-supply = <&vcc5v>; 3148c2ecf20Sopenharmony_ci}; 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci&usb2_phy1 { 3178c2ecf20Sopenharmony_ci phy-supply = <&vcc5v>; 3188c2ecf20Sopenharmony_ci}; 319