163fafc5aSJerome Brunet// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 263fafc5aSJerome Brunet/* 363fafc5aSJerome Brunet * Copyright (c) 2020 BayLibre, SAS. 463fafc5aSJerome Brunet * Author: Jerome Brunet <jbrunet@baylibre.com> 563fafc5aSJerome Brunet */ 663fafc5aSJerome Brunet 763fafc5aSJerome Brunet/dts-v1/; 863fafc5aSJerome Brunet 963fafc5aSJerome Brunet#include <dt-bindings/input/input.h> 1063fafc5aSJerome Brunet#include <dt-bindings/leds/common.h> 1163fafc5aSJerome Brunet#include <dt-bindings/sound/meson-aiu.h> 1263fafc5aSJerome Brunet 1363fafc5aSJerome Brunet#include "meson-gxl-s905x.dtsi" 1463fafc5aSJerome Brunet 1563fafc5aSJerome Brunet/ { 1663fafc5aSJerome Brunet compatible = "libretech,aml-s905x-cc-v2", "amlogic,s905x", 1763fafc5aSJerome Brunet "amlogic,meson-gxl"; 1863fafc5aSJerome Brunet model = "Libre Computer AML-S905X-CC V2"; 1963fafc5aSJerome Brunet 2063fafc5aSJerome Brunet aliases { 2163fafc5aSJerome Brunet serial0 = &uart_AO; 2263fafc5aSJerome Brunet ethernet0 = ðmac; 2363fafc5aSJerome Brunet spi0 = &spifc; 2463fafc5aSJerome Brunet }; 2563fafc5aSJerome Brunet 2663fafc5aSJerome Brunet chosen { 2763fafc5aSJerome Brunet stdout-path = "serial0:115200n8"; 2863fafc5aSJerome Brunet }; 2963fafc5aSJerome Brunet 3063fafc5aSJerome Brunet emmc_pwrseq: emmc-pwrseq { 3163fafc5aSJerome Brunet compatible = "mmc-pwrseq-emmc"; 3263fafc5aSJerome Brunet reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 3363fafc5aSJerome Brunet }; 3463fafc5aSJerome Brunet 3563fafc5aSJerome Brunet hdmi-connector { 3663fafc5aSJerome Brunet compatible = "hdmi-connector"; 3763fafc5aSJerome Brunet type = "a"; 3863fafc5aSJerome Brunet 3963fafc5aSJerome Brunet port { 4063fafc5aSJerome Brunet hdmi_connector_in: endpoint { 4163fafc5aSJerome Brunet remote-endpoint = <&hdmi_tx_tmds_out>; 4263fafc5aSJerome Brunet }; 4363fafc5aSJerome Brunet }; 4463fafc5aSJerome Brunet }; 4563fafc5aSJerome Brunet 4663fafc5aSJerome Brunet leds { 4763fafc5aSJerome Brunet compatible = "gpio-leds"; 4863fafc5aSJerome Brunet 4963fafc5aSJerome Brunet led-blue { 5063fafc5aSJerome Brunet color = <LED_COLOR_ID_BLUE>; 5163fafc5aSJerome Brunet function = LED_FUNCTION_STATUS; 5263fafc5aSJerome Brunet gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 5363fafc5aSJerome Brunet linux,default-trigger = "heartbeat"; 5463fafc5aSJerome Brunet panic-indicator; 5563fafc5aSJerome Brunet }; 5663fafc5aSJerome Brunet 5763fafc5aSJerome Brunet led-green { 5863fafc5aSJerome Brunet color = <LED_COLOR_ID_GREEN>; 5963fafc5aSJerome Brunet function = LED_FUNCTION_DISK_ACTIVITY; 6063fafc5aSJerome Brunet gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 6163fafc5aSJerome Brunet linux,default-trigger = "disk-activity"; 6263fafc5aSJerome Brunet }; 6363fafc5aSJerome Brunet }; 6463fafc5aSJerome Brunet 6563fafc5aSJerome Brunet memory@0 { 6663fafc5aSJerome Brunet device_type = "memory"; 6763fafc5aSJerome Brunet reg = <0x0 0x0 0x0 0x80000000>; 6863fafc5aSJerome Brunet }; 6963fafc5aSJerome Brunet 7063fafc5aSJerome Brunet ao_5v: regulator-ao_5v { 7163fafc5aSJerome Brunet compatible = "regulator-fixed"; 7263fafc5aSJerome Brunet regulator-name = "AO_5V"; 7363fafc5aSJerome Brunet regulator-min-microvolt = <5000000>; 7463fafc5aSJerome Brunet regulator-max-microvolt = <5000000>; 7563fafc5aSJerome Brunet vin-supply = <&dc_in>; 7663fafc5aSJerome Brunet regulator-always-on; 7763fafc5aSJerome Brunet }; 7863fafc5aSJerome Brunet 7963fafc5aSJerome Brunet dc_in: regulator-dc_in { 8063fafc5aSJerome Brunet compatible = "regulator-fixed"; 8163fafc5aSJerome Brunet regulator-name = "DC_IN"; 8263fafc5aSJerome Brunet regulator-min-microvolt = <5000000>; 8363fafc5aSJerome Brunet regulator-max-microvolt = <5000000>; 8463fafc5aSJerome Brunet regulator-always-on; 8563fafc5aSJerome Brunet }; 8663fafc5aSJerome Brunet 8763fafc5aSJerome Brunet vcck: regulator-vcck { 8863fafc5aSJerome Brunet compatible = "regulator-fixed"; 8963fafc5aSJerome Brunet regulator-name = "VCCK"; 9063fafc5aSJerome Brunet regulator-min-microvolt = <3300000>; 9163fafc5aSJerome Brunet regulator-max-microvolt = <3300000>; 9263fafc5aSJerome Brunet vin-supply = <&ao_5v>; 9363fafc5aSJerome Brunet regulator-always-on; 9463fafc5aSJerome Brunet }; 9563fafc5aSJerome Brunet 9663fafc5aSJerome Brunet vcc_card: regulator-vcc_card { 9763fafc5aSJerome Brunet compatible = "regulator-fixed"; 9863fafc5aSJerome Brunet regulator-name = "VCC_CARD"; 9963fafc5aSJerome Brunet regulator-min-microvolt = <3300000>; 10063fafc5aSJerome Brunet regulator-max-microvolt = <3300000>; 10163fafc5aSJerome Brunet vin-supply = <&vddio_ao3v3>; 10263fafc5aSJerome Brunet 10363fafc5aSJerome Brunet gpio = <&gpio GPIOCLK_1 GPIO_ACTIVE_HIGH>; 10463fafc5aSJerome Brunet enable-active-high; 10563fafc5aSJerome Brunet }; 10663fafc5aSJerome Brunet 10763fafc5aSJerome Brunet vcc5v: regulator-vcc5v { 10863fafc5aSJerome Brunet compatible = "regulator-fixed"; 10963fafc5aSJerome Brunet regulator-name = "VCC5V"; 11063fafc5aSJerome Brunet regulator-min-microvolt = <5000000>; 11163fafc5aSJerome Brunet regulator-max-microvolt = <5000000>; 11263fafc5aSJerome Brunet vin-supply = <&ao_5v>; 11363fafc5aSJerome Brunet 11463fafc5aSJerome Brunet gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; 11563fafc5aSJerome Brunet }; 11663fafc5aSJerome Brunet 11763fafc5aSJerome Brunet vddio_ao3v3: regulator-vddio_ao3v3 { 11863fafc5aSJerome Brunet compatible = "regulator-fixed"; 11963fafc5aSJerome Brunet regulator-name = "VDDIO_AO3V3"; 12063fafc5aSJerome Brunet regulator-min-microvolt = <3300000>; 12163fafc5aSJerome Brunet regulator-max-microvolt = <3300000>; 12263fafc5aSJerome Brunet vin-supply = <&ao_5v>; 12363fafc5aSJerome Brunet regulator-always-on; 12463fafc5aSJerome Brunet }; 12563fafc5aSJerome Brunet 12663fafc5aSJerome Brunet vddio_card: regulator-vddio-card { 12763fafc5aSJerome Brunet compatible = "regulator-gpio"; 12863fafc5aSJerome Brunet regulator-name = "VDDIO_CARD"; 12963fafc5aSJerome Brunet regulator-min-microvolt = <1800000>; 13063fafc5aSJerome Brunet regulator-max-microvolt = <3300000>; 13163fafc5aSJerome Brunet 13263fafc5aSJerome Brunet gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 13363fafc5aSJerome Brunet gpios-states = <0>; 13463fafc5aSJerome Brunet 13563fafc5aSJerome Brunet states = <3300000 0>, 13663fafc5aSJerome Brunet <1800000 1>; 13763fafc5aSJerome Brunet 13863fafc5aSJerome Brunet regulator-settling-time-up-us = <200>; 13963fafc5aSJerome Brunet regulator-settling-time-down-us = <50000>; 14063fafc5aSJerome Brunet }; 14163fafc5aSJerome Brunet 14263fafc5aSJerome Brunet vddio_ao18: regulator-vddio_ao18 { 14363fafc5aSJerome Brunet compatible = "regulator-fixed"; 14463fafc5aSJerome Brunet regulator-name = "VDDIO_AO18"; 14563fafc5aSJerome Brunet regulator-min-microvolt = <1800000>; 14663fafc5aSJerome Brunet regulator-max-microvolt = <1800000>; 14763fafc5aSJerome Brunet vin-supply = <&vddio_ao3v3>; 14863fafc5aSJerome Brunet regulator-always-on; 14963fafc5aSJerome Brunet }; 15063fafc5aSJerome Brunet 15163fafc5aSJerome Brunet vcc_1v8: regulator-vcc_1v8 { 15263fafc5aSJerome Brunet compatible = "regulator-fixed"; 15363fafc5aSJerome Brunet regulator-name = "VCC 1V8"; 15463fafc5aSJerome Brunet regulator-min-microvolt = <1800000>; 15563fafc5aSJerome Brunet regulator-max-microvolt = <1800000>; 15663fafc5aSJerome Brunet vin-supply = <&vddio_ao3v3>; 15763fafc5aSJerome Brunet regulator-always-on; 15863fafc5aSJerome Brunet }; 15963fafc5aSJerome Brunet 16063fafc5aSJerome Brunet sound { 16163fafc5aSJerome Brunet compatible = "amlogic,gx-sound-card"; 162933b80edSChristian Hewitt model = "LIBRETECH-CC-V2"; 16363fafc5aSJerome Brunet assigned-clocks = <&clkc CLKID_MPLL0>, 16463fafc5aSJerome Brunet <&clkc CLKID_MPLL1>, 16563fafc5aSJerome Brunet <&clkc CLKID_MPLL2>; 16663fafc5aSJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 16763fafc5aSJerome Brunet assigned-clock-rates = <294912000>, 16863fafc5aSJerome Brunet <270950400>, 16963fafc5aSJerome Brunet <393216000>; 17063fafc5aSJerome Brunet 17163fafc5aSJerome Brunet dai-link-0 { 17263fafc5aSJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 17363fafc5aSJerome Brunet }; 17463fafc5aSJerome Brunet 17563fafc5aSJerome Brunet dai-link-1 { 17663fafc5aSJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 17763fafc5aSJerome Brunet dai-format = "i2s"; 17863fafc5aSJerome Brunet mclk-fs = <256>; 17963fafc5aSJerome Brunet 18063fafc5aSJerome Brunet codec-0 { 18163fafc5aSJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 18263fafc5aSJerome Brunet }; 18363fafc5aSJerome Brunet }; 18463fafc5aSJerome Brunet 18563fafc5aSJerome Brunet dai-link-2 { 18663fafc5aSJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 18763fafc5aSJerome Brunet 18863fafc5aSJerome Brunet codec-0 { 18963fafc5aSJerome Brunet sound-dai = <&hdmi_tx>; 19063fafc5aSJerome Brunet }; 19163fafc5aSJerome Brunet }; 19263fafc5aSJerome Brunet }; 19363fafc5aSJerome Brunet}; 19463fafc5aSJerome Brunet 19563fafc5aSJerome Brunet&aiu { 19663fafc5aSJerome Brunet status = "okay"; 19763fafc5aSJerome Brunet}; 19863fafc5aSJerome Brunet 19963fafc5aSJerome Brunet&cec_AO { 20063fafc5aSJerome Brunet status = "okay"; 20163fafc5aSJerome Brunet pinctrl-0 = <&ao_cec_pins>; 20263fafc5aSJerome Brunet pinctrl-names = "default"; 20363fafc5aSJerome Brunet hdmi-phandle = <&hdmi_tx>; 20463fafc5aSJerome Brunet}; 20563fafc5aSJerome Brunet 20663fafc5aSJerome Brunetðmac { 20763fafc5aSJerome Brunet status = "okay"; 20863fafc5aSJerome Brunet}; 20963fafc5aSJerome Brunet 21063fafc5aSJerome Brunet&internal_phy { 21163fafc5aSJerome Brunet pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 21263fafc5aSJerome Brunet pinctrl-names = "default"; 21363fafc5aSJerome Brunet}; 21463fafc5aSJerome Brunet 21563fafc5aSJerome Brunet&ir { 21663fafc5aSJerome Brunet status = "okay"; 21763fafc5aSJerome Brunet pinctrl-0 = <&remote_input_ao_pins>; 21863fafc5aSJerome Brunet pinctrl-names = "default"; 21963fafc5aSJerome Brunet}; 22063fafc5aSJerome Brunet 22163fafc5aSJerome Brunet&hdmi_tx { 22263fafc5aSJerome Brunet status = "okay"; 22363fafc5aSJerome Brunet pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 22463fafc5aSJerome Brunet hdmi-supply = <&vcc5v>; 22563fafc5aSJerome Brunet pinctrl-names = "default"; 22663fafc5aSJerome Brunet}; 22763fafc5aSJerome Brunet 22863fafc5aSJerome Brunet&hdmi_tx_tmds_port { 22963fafc5aSJerome Brunet hdmi_tx_tmds_out: endpoint { 23063fafc5aSJerome Brunet remote-endpoint = <&hdmi_connector_in>; 23163fafc5aSJerome Brunet }; 23263fafc5aSJerome Brunet}; 23363fafc5aSJerome Brunet 23463fafc5aSJerome Brunet&saradc { 23563fafc5aSJerome Brunet status = "okay"; 23663fafc5aSJerome Brunet vref-supply = <&vddio_ao18>; 23763fafc5aSJerome Brunet}; 23863fafc5aSJerome Brunet 23963fafc5aSJerome Brunet/* SD card */ 24063fafc5aSJerome Brunet&sd_emmc_b { 24163fafc5aSJerome Brunet pinctrl-0 = <&sdcard_pins>; 24263fafc5aSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 24363fafc5aSJerome Brunet pinctrl-names = "default", "clk-gate"; 24463fafc5aSJerome Brunet 24563fafc5aSJerome Brunet bus-width = <4>; 24663fafc5aSJerome Brunet cap-sd-highspeed; 24763fafc5aSJerome Brunet sd-uhs-sdr12; 24863fafc5aSJerome Brunet sd-uhs-sdr25; 24963fafc5aSJerome Brunet sd-uhs-sdr50; 25063fafc5aSJerome Brunet sd-uhs-ddr50; 25163fafc5aSJerome Brunet max-frequency = <100000000>; 25263fafc5aSJerome Brunet disable-wp; 25363fafc5aSJerome Brunet 25463fafc5aSJerome Brunet cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 25563fafc5aSJerome Brunet 25663fafc5aSJerome Brunet vmmc-supply = <&vcc_card>; 25763fafc5aSJerome Brunet vqmmc-supply = <&vddio_card>; 25863fafc5aSJerome Brunet 25963fafc5aSJerome Brunet status = "okay"; 26063fafc5aSJerome Brunet}; 26163fafc5aSJerome Brunet 26263fafc5aSJerome Brunet/* eMMC */ 26363fafc5aSJerome Brunet&sd_emmc_c { 26463fafc5aSJerome Brunet pinctrl-0 = <&emmc_pins>; 26563fafc5aSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 26663fafc5aSJerome Brunet pinctrl-names = "default", "clk-gate"; 26763fafc5aSJerome Brunet 26863fafc5aSJerome Brunet bus-width = <8>; 26963fafc5aSJerome Brunet cap-mmc-highspeed; 27063fafc5aSJerome Brunet mmc-hs200-1_8v; 27163fafc5aSJerome Brunet max-frequency = <200000000>; 27263fafc5aSJerome Brunet disable-wp; 27363fafc5aSJerome Brunet 27463fafc5aSJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 27563fafc5aSJerome Brunet vmmc-supply = <&vddio_ao3v3>; 27663fafc5aSJerome Brunet vqmmc-supply = <&vcc_1v8>; 27763fafc5aSJerome Brunet 27863fafc5aSJerome Brunet status = "okay"; 27963fafc5aSJerome Brunet}; 28063fafc5aSJerome Brunet 28163fafc5aSJerome Brunet&spifc { 28263fafc5aSJerome Brunet status = "okay"; 28363fafc5aSJerome Brunet pinctrl-0 = <&nor_pins>; 28463fafc5aSJerome Brunet pinctrl-names = "default"; 28563fafc5aSJerome Brunet 286*8771ce5eSKrzysztof Kozlowski nor_4u1: flash@0 { 28763fafc5aSJerome Brunet #address-cells = <1>; 28863fafc5aSJerome Brunet #size-cells = <1>; 28963fafc5aSJerome Brunet compatible = "jedec,spi-nor"; 29063fafc5aSJerome Brunet reg = <0>; 29163fafc5aSJerome Brunet spi-max-frequency = <3000000>; 29263fafc5aSJerome Brunet }; 29363fafc5aSJerome Brunet}; 29463fafc5aSJerome Brunet 29563fafc5aSJerome Brunet&uart_AO { 29663fafc5aSJerome Brunet status = "okay"; 29763fafc5aSJerome Brunet pinctrl-0 = <&uart_ao_a_pins>; 29863fafc5aSJerome Brunet pinctrl-names = "default"; 29963fafc5aSJerome Brunet}; 30063fafc5aSJerome Brunet 30163fafc5aSJerome Brunet&usb { 30263fafc5aSJerome Brunet status = "okay"; 30363fafc5aSJerome Brunet dr_mode = "host"; 30463fafc5aSJerome Brunet}; 30563fafc5aSJerome Brunet 30663fafc5aSJerome Brunet&usb2_phy0 { 30763fafc5aSJerome Brunet phy-supply = <&vcc5v>; 30863fafc5aSJerome Brunet}; 30963fafc5aSJerome Brunet 31063fafc5aSJerome Brunet&usb2_phy1 { 31163fafc5aSJerome Brunet phy-supply = <&vcc5v>; 31263fafc5aSJerome Brunet}; 313