14549e789STom Rini// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 296e7b5a1SNeil Armstrong/* 396e7b5a1SNeil Armstrong * Copyright (c) 2017 BayLibre, SAS. 496e7b5a1SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com> 596e7b5a1SNeil Armstrong * Author: Jerome Brunet <jbrunet@baylibre.com> 696e7b5a1SNeil Armstrong */ 796e7b5a1SNeil Armstrong 896e7b5a1SNeil Armstrong/dts-v1/; 996e7b5a1SNeil Armstrong 1096e7b5a1SNeil Armstrong#include <dt-bindings/input/input.h> 1196e7b5a1SNeil Armstrong 1296e7b5a1SNeil Armstrong#include "meson-gxl-s905x.dtsi" 1396e7b5a1SNeil Armstrong 1496e7b5a1SNeil Armstrong/ { 1596e7b5a1SNeil Armstrong compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl"; 168973d816SLoic Devulder model = "Libre Computer Board AML-S905X-CC"; 1796e7b5a1SNeil Armstrong 1896e7b5a1SNeil Armstrong aliases { 1996e7b5a1SNeil Armstrong serial0 = &uart_AO; 205b3da7faSNeil Armstrong ethernet0 = ðmac; 2196e7b5a1SNeil Armstrong }; 2296e7b5a1SNeil Armstrong 2396e7b5a1SNeil Armstrong chosen { 2496e7b5a1SNeil Armstrong stdout-path = "serial0:115200n8"; 2596e7b5a1SNeil Armstrong }; 2696e7b5a1SNeil Armstrong 2796e7b5a1SNeil Armstrong cvbs-connector { 2896e7b5a1SNeil Armstrong compatible = "composite-video-connector"; 2996e7b5a1SNeil Armstrong 3096e7b5a1SNeil Armstrong port { 3196e7b5a1SNeil Armstrong cvbs_connector_in: endpoint { 3296e7b5a1SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 3396e7b5a1SNeil Armstrong }; 3496e7b5a1SNeil Armstrong }; 3596e7b5a1SNeil Armstrong }; 3696e7b5a1SNeil Armstrong 3796e7b5a1SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 3896e7b5a1SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 3996e7b5a1SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 4096e7b5a1SNeil Armstrong }; 4196e7b5a1SNeil Armstrong 4296e7b5a1SNeil Armstrong hdmi-connector { 4396e7b5a1SNeil Armstrong compatible = "hdmi-connector"; 4496e7b5a1SNeil Armstrong type = "a"; 4596e7b5a1SNeil Armstrong 4696e7b5a1SNeil Armstrong port { 4796e7b5a1SNeil Armstrong hdmi_connector_in: endpoint { 4896e7b5a1SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 4996e7b5a1SNeil Armstrong }; 5096e7b5a1SNeil Armstrong }; 5196e7b5a1SNeil Armstrong }; 5296e7b5a1SNeil Armstrong 5396e7b5a1SNeil Armstrong leds { 5496e7b5a1SNeil Armstrong compatible = "gpio-leds"; 5596e7b5a1SNeil Armstrong 5696e7b5a1SNeil Armstrong system { 5796e7b5a1SNeil Armstrong label = "librecomputer:system-status"; 5896e7b5a1SNeil Armstrong gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 5996e7b5a1SNeil Armstrong default-state = "on"; 6096e7b5a1SNeil Armstrong panic-indicator; 6196e7b5a1SNeil Armstrong }; 6296e7b5a1SNeil Armstrong 6396e7b5a1SNeil Armstrong blue { 6496e7b5a1SNeil Armstrong label = "librecomputer:blue"; 6596e7b5a1SNeil Armstrong gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 6696e7b5a1SNeil Armstrong linux,default-trigger = "heartbeat"; 6796e7b5a1SNeil Armstrong }; 6896e7b5a1SNeil Armstrong }; 6996e7b5a1SNeil Armstrong 7096e7b5a1SNeil Armstrong memory@0 { 7196e7b5a1SNeil Armstrong device_type = "memory"; 7296e7b5a1SNeil Armstrong reg = <0x0 0x0 0x0 0x80000000>; 7396e7b5a1SNeil Armstrong }; 7496e7b5a1SNeil Armstrong 757d750c35SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 767d750c35SNeil Armstrong compatible = "regulator-fixed"; 777d750c35SNeil Armstrong 787d750c35SNeil Armstrong regulator-name = "HDMI_5V"; 797d750c35SNeil Armstrong regulator-min-microvolt = <5000000>; 807d750c35SNeil Armstrong regulator-max-microvolt = <5000000>; 817d750c35SNeil Armstrong 827d750c35SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 837d750c35SNeil Armstrong enable-active-high; 847d750c35SNeil Armstrong regulator-always-on; 857d750c35SNeil Armstrong }; 867d750c35SNeil Armstrong 8796e7b5a1SNeil Armstrong vcc_3v3: regulator-vcc_3v3 { 8896e7b5a1SNeil Armstrong compatible = "regulator-fixed"; 8996e7b5a1SNeil Armstrong regulator-name = "VCC_3V3"; 9096e7b5a1SNeil Armstrong regulator-min-microvolt = <3300000>; 9196e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 9296e7b5a1SNeil Armstrong }; 9396e7b5a1SNeil Armstrong 9496e7b5a1SNeil Armstrong vcc_card: regulator-vcc-card { 9596e7b5a1SNeil Armstrong compatible = "regulator-gpio"; 9696e7b5a1SNeil Armstrong 9796e7b5a1SNeil Armstrong regulator-name = "VCC_CARD"; 9896e7b5a1SNeil Armstrong regulator-min-microvolt = <1800000>; 9996e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 10096e7b5a1SNeil Armstrong 10196e7b5a1SNeil Armstrong gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 10296e7b5a1SNeil Armstrong gpios-states = <0>; 10396e7b5a1SNeil Armstrong 10496e7b5a1SNeil Armstrong states = <3300000 0>, 10596e7b5a1SNeil Armstrong <1800000 1>; 1067d750c35SNeil Armstrong 1077d750c35SNeil Armstrong regulator-settling-time-up-us = <200>; 1087d750c35SNeil Armstrong regulator-settling-time-down-us = <50000>; 1097d750c35SNeil Armstrong }; 1107d750c35SNeil Armstrong 1117d750c35SNeil Armstrong vddio_ao18: regulator-vddio_ao18 { 1127d750c35SNeil Armstrong compatible = "regulator-fixed"; 1137d750c35SNeil Armstrong regulator-name = "VDDIO_AO18"; 1147d750c35SNeil Armstrong regulator-min-microvolt = <1800000>; 1157d750c35SNeil Armstrong regulator-max-microvolt = <1800000>; 11696e7b5a1SNeil Armstrong }; 11796e7b5a1SNeil Armstrong 11896e7b5a1SNeil Armstrong vddio_boot: regulator-vddio_boot { 11996e7b5a1SNeil Armstrong compatible = "regulator-fixed"; 12096e7b5a1SNeil Armstrong regulator-name = "VDDIO_BOOT"; 12196e7b5a1SNeil Armstrong regulator-min-microvolt = <3300000>; 12296e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 12396e7b5a1SNeil Armstrong }; 12496e7b5a1SNeil Armstrong}; 12596e7b5a1SNeil Armstrong 1267d750c35SNeil Armstrong&cec_AO { 1277d750c35SNeil Armstrong status = "okay"; 1287d750c35SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 1297d750c35SNeil Armstrong pinctrl-names = "default"; 1307d750c35SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 1317d750c35SNeil Armstrong}; 1327d750c35SNeil Armstrong 13396e7b5a1SNeil Armstrong&cvbs_vdac_port { 13496e7b5a1SNeil Armstrong cvbs_vdac_out: endpoint { 13596e7b5a1SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 13696e7b5a1SNeil Armstrong }; 13796e7b5a1SNeil Armstrong}; 13896e7b5a1SNeil Armstrong 13996e7b5a1SNeil Armstrongðmac { 14096e7b5a1SNeil Armstrong status = "okay"; 14196e7b5a1SNeil Armstrong}; 14296e7b5a1SNeil Armstrong 1437d750c35SNeil Armstrong&internal_phy { 1447d750c35SNeil Armstrong pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 1457d750c35SNeil Armstrong pinctrl-names = "default"; 1467d750c35SNeil Armstrong}; 1477d750c35SNeil Armstrong 14896e7b5a1SNeil Armstrong&ir { 14996e7b5a1SNeil Armstrong status = "okay"; 15096e7b5a1SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 15196e7b5a1SNeil Armstrong pinctrl-names = "default"; 15296e7b5a1SNeil Armstrong}; 15396e7b5a1SNeil Armstrong 15496e7b5a1SNeil Armstrong&hdmi_tx { 15596e7b5a1SNeil Armstrong status = "okay"; 15696e7b5a1SNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 15796e7b5a1SNeil Armstrong pinctrl-names = "default"; 158*bce59f91SNeil Armstrong hdmi-supply = <&hdmi_5v>; 15996e7b5a1SNeil Armstrong}; 16096e7b5a1SNeil Armstrong 16196e7b5a1SNeil Armstrong&hdmi_tx_tmds_port { 16296e7b5a1SNeil Armstrong hdmi_tx_tmds_out: endpoint { 16396e7b5a1SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 16496e7b5a1SNeil Armstrong }; 16596e7b5a1SNeil Armstrong}; 16696e7b5a1SNeil Armstrong 1677d750c35SNeil Armstrong&pinctrl_aobus { 1687d750c35SNeil Armstrong gpio-line-names = "UART TX", 1697d750c35SNeil Armstrong "UART RX", 1707d750c35SNeil Armstrong "Blue LED", 1717d750c35SNeil Armstrong "SDCard Voltage Switch", 1727d750c35SNeil Armstrong "7J1 Header Pin5", 1737d750c35SNeil Armstrong "7J1 Header Pin3", 1747d750c35SNeil Armstrong "7J1 Header Pin12", 1757d750c35SNeil Armstrong "IR In", 1767d750c35SNeil Armstrong "9J3 Switch HDMI CEC/7J1 Header Pin11", 1777d750c35SNeil Armstrong "7J1 Header Pin13", 1787d750c35SNeil Armstrong /* GPIO_TEST_N */ 1797d750c35SNeil Armstrong "7J1 Header Pin15"; 1807d750c35SNeil Armstrong}; 1817d750c35SNeil Armstrong 1827d750c35SNeil Armstrong&pinctrl_periphs { 1837d750c35SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 1847d750c35SNeil Armstrong "", "", "", "", "", "", "", 1857d750c35SNeil Armstrong "", "", "", "", "", "", "", 1867d750c35SNeil Armstrong "Eth Link LED", "Eth Activity LED", 1877d750c35SNeil Armstrong /* Bank GPIOH */ 1887d750c35SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 1897d750c35SNeil Armstrong "HDMI_5V_EN", "9J1 Header Pin2", 1907d750c35SNeil Armstrong "Analog Audio Mute", 1917d750c35SNeil Armstrong "2J3 Header Pin6", 1927d750c35SNeil Armstrong "2J3 Header Pin5", 1937d750c35SNeil Armstrong "2J3 Header Pin4", 1947d750c35SNeil Armstrong "2J3 Header Pin3", 1957d750c35SNeil Armstrong /* Bank BOOT */ 1967d750c35SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 1977d750c35SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 1987d750c35SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 1997d750c35SNeil Armstrong "ALT BOOT MODE", "", "", "", "eMMC Data Strobe", 2007d750c35SNeil Armstrong /* Bank CARD */ 2017d750c35SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 2027d750c35SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 2037d750c35SNeil Armstrong /* Bank GPIODV */ 2047d750c35SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 2057d750c35SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 2067d750c35SNeil Armstrong "Green LED", "VCCK Enable", 2077d750c35SNeil Armstrong "7J1 Header Pin27", "7J1 Header Pin28", 2087d750c35SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 2097d750c35SNeil Armstrong /* Bank GPIOX */ 2107d750c35SNeil Armstrong "7J1 Header Pin22", "7J1 Header Pin26", 2117d750c35SNeil Armstrong "7J1 Header Pin36", "7J1 Header Pin38", 2127d750c35SNeil Armstrong "7J1 Header Pin40", "7J1 Header Pin37", 2137d750c35SNeil Armstrong "7J1 Header Pin33", "7J1 Header Pin35", 2147d750c35SNeil Armstrong "7J1 Header Pin19", "7J1 Header Pin21", 2157d750c35SNeil Armstrong "7J1 Header Pin24", "7J1 Header Pin23", 2167d750c35SNeil Armstrong "7J1 Header Pin8", "7J1 Header Pin10", 2177d750c35SNeil Armstrong "7J1 Header Pin16", "7J1 Header Pin18", 2187d750c35SNeil Armstrong "7J1 Header Pin32", "7J1 Header Pin29", 2197d750c35SNeil Armstrong "7J1 Header Pin31", 2207d750c35SNeil Armstrong /* Bank GPIOCLK */ 2217d750c35SNeil Armstrong "7J1 Header Pin7", ""; 2227d750c35SNeil Armstrong}; 2237d750c35SNeil Armstrong 2247d750c35SNeil Armstrong&saradc { 2257d750c35SNeil Armstrong status = "okay"; 2267d750c35SNeil Armstrong vref-supply = <&vddio_ao18>; 2277d750c35SNeil Armstrong}; 2287d750c35SNeil Armstrong 22996e7b5a1SNeil Armstrong/* SD card */ 23096e7b5a1SNeil Armstrong&sd_emmc_b { 23196e7b5a1SNeil Armstrong status = "okay"; 23296e7b5a1SNeil Armstrong pinctrl-0 = <&sdcard_pins>; 2337d750c35SNeil Armstrong pinctrl-1 = <&sdcard_clk_gate_pins>; 2347d750c35SNeil Armstrong pinctrl-names = "default", "clk-gate"; 23596e7b5a1SNeil Armstrong 23696e7b5a1SNeil Armstrong bus-width = <4>; 23796e7b5a1SNeil Armstrong cap-sd-highspeed; 23896e7b5a1SNeil Armstrong max-frequency = <100000000>; 23996e7b5a1SNeil Armstrong disable-wp; 24096e7b5a1SNeil Armstrong 24196e7b5a1SNeil Armstrong cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 24296e7b5a1SNeil Armstrong cd-inverted; 24396e7b5a1SNeil Armstrong 24496e7b5a1SNeil Armstrong vmmc-supply = <&vcc_3v3>; 24596e7b5a1SNeil Armstrong vqmmc-supply = <&vcc_card>; 24696e7b5a1SNeil Armstrong}; 24796e7b5a1SNeil Armstrong 24896e7b5a1SNeil Armstrong/* eMMC */ 24996e7b5a1SNeil Armstrong&sd_emmc_c { 25096e7b5a1SNeil Armstrong status = "okay"; 2517d750c35SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 2527d750c35SNeil Armstrong pinctrl-1 = <&emmc_clk_gate_pins>; 2537d750c35SNeil Armstrong pinctrl-names = "default", "clk-gate"; 25496e7b5a1SNeil Armstrong 25596e7b5a1SNeil Armstrong bus-width = <8>; 25696e7b5a1SNeil Armstrong cap-mmc-highspeed; 2577d750c35SNeil Armstrong mmc-ddr-3_3v; 25896e7b5a1SNeil Armstrong max-frequency = <50000000>; 25996e7b5a1SNeil Armstrong non-removable; 26096e7b5a1SNeil Armstrong disable-wp; 26196e7b5a1SNeil Armstrong 26296e7b5a1SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 26396e7b5a1SNeil Armstrong vmmc-supply = <&vcc_3v3>; 26496e7b5a1SNeil Armstrong vqmmc-supply = <&vddio_boot>; 26596e7b5a1SNeil Armstrong}; 26696e7b5a1SNeil Armstrong 26796e7b5a1SNeil Armstrong&uart_AO { 26896e7b5a1SNeil Armstrong status = "okay"; 26996e7b5a1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 27096e7b5a1SNeil Armstrong pinctrl-names = "default"; 27196e7b5a1SNeil Armstrong}; 2725b3da7faSNeil Armstrong 2735b3da7faSNeil Armstrong&usb0 { 2745b3da7faSNeil Armstrong status = "okay"; 2755b3da7faSNeil Armstrong}; 2765b3da7faSNeil Armstrong 2775b3da7faSNeil Armstrong&usb2_phy0 { 2785b3da7faSNeil Armstrong /* 2795b3da7faSNeil Armstrong * even though the schematics don't show it: 2805b3da7faSNeil Armstrong * HDMI_5V is also used as supply for the USB VBUS. 2815b3da7faSNeil Armstrong */ 2825b3da7faSNeil Armstrong phy-supply = <&hdmi_5v>; 2835b3da7faSNeil Armstrong}; 284