1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cd84aff1SJerome Brunet/* 3cd84aff1SJerome Brunet * Copyright (c) 2017 BayLibre, SAS. 4cd84aff1SJerome Brunet * Author: Neil Armstrong <narmstrong@baylibre.com> 5cd84aff1SJerome Brunet * Author: Jerome Brunet <jbrunet@baylibre.com> 6cd84aff1SJerome Brunet */ 7cd84aff1SJerome Brunet 8cd84aff1SJerome Brunet/dts-v1/; 9cd84aff1SJerome Brunet 10cd84aff1SJerome Brunet#include <dt-bindings/input/input.h> 11cd84aff1SJerome Brunet 1272fb2c85SJerome Brunet#include "meson-gxl-s905x.dtsi" 13cd84aff1SJerome Brunet 14cd84aff1SJerome Brunet/ { 150751c59fSChristian Hewitt compatible = "libretech,aml-s905x-cc", "amlogic,s905x", 160751c59fSChristian Hewitt "amlogic,meson-gxl"; 170751c59fSChristian Hewitt model = "Libre Computer AML-S905X-CC"; 18cd84aff1SJerome Brunet 1972fb2c85SJerome Brunet aliases { 2072fb2c85SJerome Brunet serial0 = &uart_AO; 21f7c36209SJorge Ramirez-Ortiz ethernet0 = ðmac; 2272fb2c85SJerome Brunet }; 2372fb2c85SJerome Brunet 2472fb2c85SJerome Brunet chosen { 2572fb2c85SJerome Brunet stdout-path = "serial0:115200n8"; 2672fb2c85SJerome Brunet }; 2772fb2c85SJerome Brunet 28cd84aff1SJerome Brunet cvbs-connector { 29cd84aff1SJerome Brunet compatible = "composite-video-connector"; 30cd84aff1SJerome Brunet 31cd84aff1SJerome Brunet port { 32cd84aff1SJerome Brunet cvbs_connector_in: endpoint { 33cd84aff1SJerome Brunet remote-endpoint = <&cvbs_vdac_out>; 34cd84aff1SJerome Brunet }; 35cd84aff1SJerome Brunet }; 36cd84aff1SJerome Brunet }; 37cd84aff1SJerome Brunet 3872fb2c85SJerome Brunet emmc_pwrseq: emmc-pwrseq { 3972fb2c85SJerome Brunet compatible = "mmc-pwrseq-emmc"; 4072fb2c85SJerome Brunet reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 4172fb2c85SJerome Brunet }; 4272fb2c85SJerome Brunet 43cd84aff1SJerome Brunet hdmi-connector { 44cd84aff1SJerome Brunet compatible = "hdmi-connector"; 45cd84aff1SJerome Brunet type = "a"; 46cd84aff1SJerome Brunet 47cd84aff1SJerome Brunet port { 48cd84aff1SJerome Brunet hdmi_connector_in: endpoint { 49cd84aff1SJerome Brunet remote-endpoint = <&hdmi_tx_tmds_out>; 50cd84aff1SJerome Brunet }; 51cd84aff1SJerome Brunet }; 52cd84aff1SJerome Brunet }; 53cd84aff1SJerome Brunet 54cd84aff1SJerome Brunet leds { 55cd84aff1SJerome Brunet compatible = "gpio-leds"; 56cd84aff1SJerome Brunet 57cd84aff1SJerome Brunet system { 58cd84aff1SJerome Brunet label = "librecomputer:system-status"; 59cd84aff1SJerome Brunet gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 60cd84aff1SJerome Brunet default-state = "on"; 61cd84aff1SJerome Brunet panic-indicator; 62cd84aff1SJerome Brunet }; 63cd84aff1SJerome Brunet 64cd84aff1SJerome Brunet blue { 65cd84aff1SJerome Brunet label = "librecomputer:blue"; 66cd84aff1SJerome Brunet gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 67cd84aff1SJerome Brunet linux,default-trigger = "heartbeat"; 68cd84aff1SJerome Brunet }; 69cd84aff1SJerome Brunet }; 7072fb2c85SJerome Brunet 7172fb2c85SJerome Brunet memory@0 { 7272fb2c85SJerome Brunet device_type = "memory"; 7372fb2c85SJerome Brunet reg = <0x0 0x0 0x0 0x80000000>; 7472fb2c85SJerome Brunet }; 7572fb2c85SJerome Brunet 76b409f625SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 77b409f625SNeil Armstrong compatible = "regulator-fixed"; 78b409f625SNeil Armstrong 79b409f625SNeil Armstrong regulator-name = "HDMI_5V"; 80b409f625SNeil Armstrong regulator-min-microvolt = <5000000>; 81b409f625SNeil Armstrong regulator-max-microvolt = <5000000>; 82b409f625SNeil Armstrong 83b409f625SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 84b409f625SNeil Armstrong enable-active-high; 85b409f625SNeil Armstrong regulator-always-on; 86b409f625SNeil Armstrong }; 87b409f625SNeil Armstrong 8872fb2c85SJerome Brunet vcc_3v3: regulator-vcc_3v3 { 8972fb2c85SJerome Brunet compatible = "regulator-fixed"; 9072fb2c85SJerome Brunet regulator-name = "VCC_3V3"; 9172fb2c85SJerome Brunet regulator-min-microvolt = <3300000>; 9272fb2c85SJerome Brunet regulator-max-microvolt = <3300000>; 9372fb2c85SJerome Brunet }; 9472fb2c85SJerome Brunet 9572fb2c85SJerome Brunet vcc_card: regulator-vcc-card { 9672fb2c85SJerome Brunet compatible = "regulator-gpio"; 9772fb2c85SJerome Brunet 9872fb2c85SJerome Brunet regulator-name = "VCC_CARD"; 9972fb2c85SJerome Brunet regulator-min-microvolt = <1800000>; 10072fb2c85SJerome Brunet regulator-max-microvolt = <3300000>; 10172fb2c85SJerome Brunet 10272fb2c85SJerome Brunet gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 10372fb2c85SJerome Brunet gpios-states = <0>; 10472fb2c85SJerome Brunet 10572fb2c85SJerome Brunet states = <3300000 0>, 10672fb2c85SJerome Brunet <1800000 1>; 1078a5085c4SJerome Brunet 1088a5085c4SJerome Brunet regulator-settling-time-up-us = <200>; 1098a5085c4SJerome Brunet regulator-settling-time-down-us = <50000>; 11072fb2c85SJerome Brunet }; 11172fb2c85SJerome Brunet 112dd47e4a3SJerome Brunet vddio_ao18: regulator-vddio_ao18 { 113dd47e4a3SJerome Brunet compatible = "regulator-fixed"; 114dd47e4a3SJerome Brunet regulator-name = "VDDIO_AO18"; 115dd47e4a3SJerome Brunet regulator-min-microvolt = <1800000>; 116dd47e4a3SJerome Brunet regulator-max-microvolt = <1800000>; 117dd47e4a3SJerome Brunet }; 118dd47e4a3SJerome Brunet 119ffab3fd6SJerome Brunet /* This is provided by LDOs on the eMMC daugther card */ 12072fb2c85SJerome Brunet vddio_boot: regulator-vddio_boot { 12172fb2c85SJerome Brunet compatible = "regulator-fixed"; 12272fb2c85SJerome Brunet regulator-name = "VDDIO_BOOT"; 123ffab3fd6SJerome Brunet regulator-min-microvolt = <1800000>; 124ffab3fd6SJerome Brunet regulator-max-microvolt = <1800000>; 125ffab3fd6SJerome Brunet vin-supply = <&vcc_3v3>; 12672fb2c85SJerome Brunet }; 127cd84aff1SJerome Brunet}; 128cd84aff1SJerome Brunet 129b16c71c9SNeil Armstrong&cec_AO { 130b16c71c9SNeil Armstrong status = "okay"; 131b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 132b16c71c9SNeil Armstrong pinctrl-names = "default"; 133b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 134b16c71c9SNeil Armstrong}; 135b16c71c9SNeil Armstrong 136cd84aff1SJerome Brunet&cvbs_vdac_port { 137cd84aff1SJerome Brunet cvbs_vdac_out: endpoint { 138cd84aff1SJerome Brunet remote-endpoint = <&cvbs_connector_in>; 139cd84aff1SJerome Brunet }; 140cd84aff1SJerome Brunet}; 141cd84aff1SJerome Brunet 14272fb2c85SJerome Brunetðmac { 14372fb2c85SJerome Brunet status = "okay"; 14472fb2c85SJerome Brunet}; 14572fb2c85SJerome Brunet 146dac16187SJerome Brunet&internal_phy { 147dac16187SJerome Brunet pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 148dac16187SJerome Brunet pinctrl-names = "default"; 149dac16187SJerome Brunet}; 150dac16187SJerome Brunet 15172fb2c85SJerome Brunet&ir { 15272fb2c85SJerome Brunet status = "okay"; 15372fb2c85SJerome Brunet pinctrl-0 = <&remote_input_ao_pins>; 15472fb2c85SJerome Brunet pinctrl-names = "default"; 15572fb2c85SJerome Brunet}; 15672fb2c85SJerome Brunet 157cd84aff1SJerome Brunet&hdmi_tx { 158cd84aff1SJerome Brunet status = "okay"; 159cd84aff1SJerome Brunet pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 160cd84aff1SJerome Brunet pinctrl-names = "default"; 161e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 162cd84aff1SJerome Brunet}; 163cd84aff1SJerome Brunet 164cd84aff1SJerome Brunet&hdmi_tx_tmds_port { 165cd84aff1SJerome Brunet hdmi_tx_tmds_out: endpoint { 166cd84aff1SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 167cd84aff1SJerome Brunet }; 168cd84aff1SJerome Brunet}; 169cd84aff1SJerome Brunet 17011fa9774SNeil Armstrong&gpio_ao { 17147884c5cSNeil Armstrong gpio-line-names = "UART TX", 17247884c5cSNeil Armstrong "UART RX", 17347884c5cSNeil Armstrong "Blue LED", 17447884c5cSNeil Armstrong "SDCard Voltage Switch", 17547884c5cSNeil Armstrong "7J1 Header Pin5", 17647884c5cSNeil Armstrong "7J1 Header Pin3", 17747884c5cSNeil Armstrong "7J1 Header Pin12", 17847884c5cSNeil Armstrong "IR In", 17947884c5cSNeil Armstrong "9J3 Switch HDMI CEC/7J1 Header Pin11", 1801d70eaadSJerome Brunet "7J1 Header Pin13", 1811d70eaadSJerome Brunet /* GPIO_TEST_N */ 1821d70eaadSJerome Brunet "7J1 Header Pin15"; 18347884c5cSNeil Armstrong}; 18447884c5cSNeil Armstrong 18511fa9774SNeil Armstrong&gpio { 18647884c5cSNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 18747884c5cSNeil Armstrong "", "", "", "", "", "", "", 18847884c5cSNeil Armstrong "", "", "", "", "", "", "", 18947884c5cSNeil Armstrong "Eth Link LED", "Eth Activity LED", 19047884c5cSNeil Armstrong /* Bank GPIOH */ 19147884c5cSNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 19247884c5cSNeil Armstrong "HDMI_5V_EN", "9J1 Header Pin2", 19347884c5cSNeil Armstrong "Analog Audio Mute", 19447884c5cSNeil Armstrong "2J3 Header Pin6", 19547884c5cSNeil Armstrong "2J3 Header Pin5", 19647884c5cSNeil Armstrong "2J3 Header Pin4", 19747884c5cSNeil Armstrong "2J3 Header Pin3", 19847884c5cSNeil Armstrong /* Bank BOOT */ 19947884c5cSNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 20047884c5cSNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 20147884c5cSNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 20247884c5cSNeil Armstrong "ALT BOOT MODE", "", "", "", "eMMC Data Strobe", 20347884c5cSNeil Armstrong /* Bank CARD */ 20447884c5cSNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 20547884c5cSNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 20647884c5cSNeil Armstrong /* Bank GPIODV */ 20747884c5cSNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 20847884c5cSNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 20947884c5cSNeil Armstrong "Green LED", "VCCK Enable", 21047884c5cSNeil Armstrong "7J1 Header Pin27", "7J1 Header Pin28", 21147884c5cSNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 21247884c5cSNeil Armstrong /* Bank GPIOX */ 21347884c5cSNeil Armstrong "7J1 Header Pin22", "7J1 Header Pin26", 21447884c5cSNeil Armstrong "7J1 Header Pin36", "7J1 Header Pin38", 21547884c5cSNeil Armstrong "7J1 Header Pin40", "7J1 Header Pin37", 21647884c5cSNeil Armstrong "7J1 Header Pin33", "7J1 Header Pin35", 21747884c5cSNeil Armstrong "7J1 Header Pin19", "7J1 Header Pin21", 21847884c5cSNeil Armstrong "7J1 Header Pin24", "7J1 Header Pin23", 21947884c5cSNeil Armstrong "7J1 Header Pin8", "7J1 Header Pin10", 22047884c5cSNeil Armstrong "7J1 Header Pin16", "7J1 Header Pin18", 22147884c5cSNeil Armstrong "7J1 Header Pin32", "7J1 Header Pin29", 22247884c5cSNeil Armstrong "7J1 Header Pin31", 22347884c5cSNeil Armstrong /* Bank GPIOCLK */ 2241d70eaadSJerome Brunet "7J1 Header Pin7", ""; 22547884c5cSNeil Armstrong}; 22647884c5cSNeil Armstrong 227dd47e4a3SJerome Brunet&saradc { 228dd47e4a3SJerome Brunet status = "okay"; 229dd47e4a3SJerome Brunet vref-supply = <&vddio_ao18>; 230dd47e4a3SJerome Brunet}; 231dd47e4a3SJerome Brunet 23272fb2c85SJerome Brunet/* SD card */ 23372fb2c85SJerome Brunet&sd_emmc_b { 23472fb2c85SJerome Brunet status = "okay"; 23572fb2c85SJerome Brunet pinctrl-0 = <&sdcard_pins>; 23667e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 23767e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 238cd84aff1SJerome Brunet 23972fb2c85SJerome Brunet bus-width = <4>; 24072fb2c85SJerome Brunet cap-sd-highspeed; 241adc52bf7SJerome Brunet max-frequency = <50000000>; 24272fb2c85SJerome Brunet disable-wp; 24372fb2c85SJerome Brunet 244f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 24572fb2c85SJerome Brunet 24672fb2c85SJerome Brunet vmmc-supply = <&vcc_3v3>; 24772fb2c85SJerome Brunet vqmmc-supply = <&vcc_card>; 248cd84aff1SJerome Brunet}; 249cd84aff1SJerome Brunet 25072fb2c85SJerome Brunet/* eMMC */ 25172fb2c85SJerome Brunet&sd_emmc_c { 25272fb2c85SJerome Brunet status = "okay"; 253ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 25467e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 25567e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 25672fb2c85SJerome Brunet 25772fb2c85SJerome Brunet bus-width = <8>; 25872fb2c85SJerome Brunet cap-mmc-highspeed; 259ffab3fd6SJerome Brunet mmc-ddr-1_8v; 260ffab3fd6SJerome Brunet mmc-hs200-1_8v; 261ffab3fd6SJerome Brunet max-frequency = <200000000>; 26272fb2c85SJerome Brunet disable-wp; 26372fb2c85SJerome Brunet 26472fb2c85SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 26572fb2c85SJerome Brunet vmmc-supply = <&vcc_3v3>; 26672fb2c85SJerome Brunet vqmmc-supply = <&vddio_boot>; 267cd84aff1SJerome Brunet}; 268cd84aff1SJerome Brunet 26972fb2c85SJerome Brunet&uart_AO { 27072fb2c85SJerome Brunet status = "okay"; 27172fb2c85SJerome Brunet pinctrl-0 = <&uart_ao_a_pins>; 27272fb2c85SJerome Brunet pinctrl-names = "default"; 273cd84aff1SJerome Brunet}; 274b83687f3SMartin Blumenstingl 2752f9139c2SMartin Blumenstingl&usb { 276b83687f3SMartin Blumenstingl status = "okay"; 2772f9139c2SMartin Blumenstingl dr_mode = "host"; 278b83687f3SMartin Blumenstingl}; 279b83687f3SMartin Blumenstingl 280b83687f3SMartin Blumenstingl&usb2_phy0 { 281b83687f3SMartin Blumenstingl /* 282b83687f3SMartin Blumenstingl * even though the schematics don't show it: 283b83687f3SMartin Blumenstingl * HDMI_5V is also used as supply for the USB VBUS. 284b83687f3SMartin Blumenstingl */ 285b83687f3SMartin Blumenstingl phy-supply = <&hdmi_5v>; 286b83687f3SMartin Blumenstingl}; 287