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"; 1696e7b5a1SNeil Armstrong model = "Libre Technology CC"; 1796e7b5a1SNeil Armstrong 1896e7b5a1SNeil Armstrong aliases { 1996e7b5a1SNeil Armstrong serial0 = &uart_AO; 2096e7b5a1SNeil Armstrong }; 2196e7b5a1SNeil Armstrong 2296e7b5a1SNeil Armstrong chosen { 2396e7b5a1SNeil Armstrong stdout-path = "serial0:115200n8"; 2496e7b5a1SNeil Armstrong }; 2596e7b5a1SNeil Armstrong 2696e7b5a1SNeil Armstrong cvbs-connector { 2796e7b5a1SNeil Armstrong compatible = "composite-video-connector"; 2896e7b5a1SNeil Armstrong 2996e7b5a1SNeil Armstrong port { 3096e7b5a1SNeil Armstrong cvbs_connector_in: endpoint { 3196e7b5a1SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 3296e7b5a1SNeil Armstrong }; 3396e7b5a1SNeil Armstrong }; 3496e7b5a1SNeil Armstrong }; 3596e7b5a1SNeil Armstrong 3696e7b5a1SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 3796e7b5a1SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 3896e7b5a1SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 3996e7b5a1SNeil Armstrong }; 4096e7b5a1SNeil Armstrong 4196e7b5a1SNeil Armstrong hdmi-connector { 4296e7b5a1SNeil Armstrong compatible = "hdmi-connector"; 4396e7b5a1SNeil Armstrong type = "a"; 4496e7b5a1SNeil Armstrong 4596e7b5a1SNeil Armstrong port { 4696e7b5a1SNeil Armstrong hdmi_connector_in: endpoint { 4796e7b5a1SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 4896e7b5a1SNeil Armstrong }; 4996e7b5a1SNeil Armstrong }; 5096e7b5a1SNeil Armstrong }; 5196e7b5a1SNeil Armstrong 5296e7b5a1SNeil Armstrong leds { 5396e7b5a1SNeil Armstrong compatible = "gpio-leds"; 5496e7b5a1SNeil Armstrong 5596e7b5a1SNeil Armstrong system { 5696e7b5a1SNeil Armstrong label = "librecomputer:system-status"; 5796e7b5a1SNeil Armstrong gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 5896e7b5a1SNeil Armstrong default-state = "on"; 5996e7b5a1SNeil Armstrong panic-indicator; 6096e7b5a1SNeil Armstrong }; 6196e7b5a1SNeil Armstrong 6296e7b5a1SNeil Armstrong blue { 6396e7b5a1SNeil Armstrong label = "librecomputer:blue"; 6496e7b5a1SNeil Armstrong gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 6596e7b5a1SNeil Armstrong linux,default-trigger = "heartbeat"; 6696e7b5a1SNeil Armstrong }; 6796e7b5a1SNeil Armstrong }; 6896e7b5a1SNeil Armstrong 6996e7b5a1SNeil Armstrong memory@0 { 7096e7b5a1SNeil Armstrong device_type = "memory"; 7196e7b5a1SNeil Armstrong reg = <0x0 0x0 0x0 0x80000000>; 7296e7b5a1SNeil Armstrong }; 7396e7b5a1SNeil Armstrong 74*7d750c35SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 75*7d750c35SNeil Armstrong compatible = "regulator-fixed"; 76*7d750c35SNeil Armstrong 77*7d750c35SNeil Armstrong regulator-name = "HDMI_5V"; 78*7d750c35SNeil Armstrong regulator-min-microvolt = <5000000>; 79*7d750c35SNeil Armstrong regulator-max-microvolt = <5000000>; 80*7d750c35SNeil Armstrong 81*7d750c35SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 82*7d750c35SNeil Armstrong enable-active-high; 83*7d750c35SNeil Armstrong regulator-always-on; 84*7d750c35SNeil Armstrong }; 85*7d750c35SNeil Armstrong 8696e7b5a1SNeil Armstrong vcc_3v3: regulator-vcc_3v3 { 8796e7b5a1SNeil Armstrong compatible = "regulator-fixed"; 8896e7b5a1SNeil Armstrong regulator-name = "VCC_3V3"; 8996e7b5a1SNeil Armstrong regulator-min-microvolt = <3300000>; 9096e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 9196e7b5a1SNeil Armstrong }; 9296e7b5a1SNeil Armstrong 9396e7b5a1SNeil Armstrong vcc_card: regulator-vcc-card { 9496e7b5a1SNeil Armstrong compatible = "regulator-gpio"; 9596e7b5a1SNeil Armstrong 9696e7b5a1SNeil Armstrong regulator-name = "VCC_CARD"; 9796e7b5a1SNeil Armstrong regulator-min-microvolt = <1800000>; 9896e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 9996e7b5a1SNeil Armstrong 10096e7b5a1SNeil Armstrong gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 10196e7b5a1SNeil Armstrong gpios-states = <0>; 10296e7b5a1SNeil Armstrong 10396e7b5a1SNeil Armstrong states = <3300000 0>, 10496e7b5a1SNeil Armstrong <1800000 1>; 105*7d750c35SNeil Armstrong 106*7d750c35SNeil Armstrong regulator-settling-time-up-us = <200>; 107*7d750c35SNeil Armstrong regulator-settling-time-down-us = <50000>; 108*7d750c35SNeil Armstrong }; 109*7d750c35SNeil Armstrong 110*7d750c35SNeil Armstrong vddio_ao18: regulator-vddio_ao18 { 111*7d750c35SNeil Armstrong compatible = "regulator-fixed"; 112*7d750c35SNeil Armstrong regulator-name = "VDDIO_AO18"; 113*7d750c35SNeil Armstrong regulator-min-microvolt = <1800000>; 114*7d750c35SNeil Armstrong regulator-max-microvolt = <1800000>; 11596e7b5a1SNeil Armstrong }; 11696e7b5a1SNeil Armstrong 11796e7b5a1SNeil Armstrong vddio_boot: regulator-vddio_boot { 11896e7b5a1SNeil Armstrong compatible = "regulator-fixed"; 11996e7b5a1SNeil Armstrong regulator-name = "VDDIO_BOOT"; 12096e7b5a1SNeil Armstrong regulator-min-microvolt = <3300000>; 12196e7b5a1SNeil Armstrong regulator-max-microvolt = <3300000>; 12296e7b5a1SNeil Armstrong }; 12396e7b5a1SNeil Armstrong}; 12496e7b5a1SNeil Armstrong 125*7d750c35SNeil Armstrong&cec_AO { 126*7d750c35SNeil Armstrong status = "okay"; 127*7d750c35SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 128*7d750c35SNeil Armstrong pinctrl-names = "default"; 129*7d750c35SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 130*7d750c35SNeil Armstrong}; 131*7d750c35SNeil Armstrong 13296e7b5a1SNeil Armstrong&cvbs_vdac_port { 13396e7b5a1SNeil Armstrong cvbs_vdac_out: endpoint { 13496e7b5a1SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 13596e7b5a1SNeil Armstrong }; 13696e7b5a1SNeil Armstrong}; 13796e7b5a1SNeil Armstrong 13896e7b5a1SNeil Armstrongðmac { 13996e7b5a1SNeil Armstrong status = "okay"; 14096e7b5a1SNeil Armstrong}; 14196e7b5a1SNeil Armstrong 142*7d750c35SNeil Armstrong&internal_phy { 143*7d750c35SNeil Armstrong pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 144*7d750c35SNeil Armstrong pinctrl-names = "default"; 145*7d750c35SNeil Armstrong}; 146*7d750c35SNeil Armstrong 14796e7b5a1SNeil Armstrong&ir { 14896e7b5a1SNeil Armstrong status = "okay"; 14996e7b5a1SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 15096e7b5a1SNeil Armstrong pinctrl-names = "default"; 15196e7b5a1SNeil Armstrong}; 15296e7b5a1SNeil Armstrong 15396e7b5a1SNeil Armstrong&hdmi_tx { 15496e7b5a1SNeil Armstrong status = "okay"; 15596e7b5a1SNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 15696e7b5a1SNeil Armstrong pinctrl-names = "default"; 15796e7b5a1SNeil Armstrong}; 15896e7b5a1SNeil Armstrong 15996e7b5a1SNeil Armstrong&hdmi_tx_tmds_port { 16096e7b5a1SNeil Armstrong hdmi_tx_tmds_out: endpoint { 16196e7b5a1SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 16296e7b5a1SNeil Armstrong }; 16396e7b5a1SNeil Armstrong}; 16496e7b5a1SNeil Armstrong 165*7d750c35SNeil Armstrong&pinctrl_aobus { 166*7d750c35SNeil Armstrong gpio-line-names = "UART TX", 167*7d750c35SNeil Armstrong "UART RX", 168*7d750c35SNeil Armstrong "Blue LED", 169*7d750c35SNeil Armstrong "SDCard Voltage Switch", 170*7d750c35SNeil Armstrong "7J1 Header Pin5", 171*7d750c35SNeil Armstrong "7J1 Header Pin3", 172*7d750c35SNeil Armstrong "7J1 Header Pin12", 173*7d750c35SNeil Armstrong "IR In", 174*7d750c35SNeil Armstrong "9J3 Switch HDMI CEC/7J1 Header Pin11", 175*7d750c35SNeil Armstrong "7J1 Header Pin13", 176*7d750c35SNeil Armstrong /* GPIO_TEST_N */ 177*7d750c35SNeil Armstrong "7J1 Header Pin15"; 178*7d750c35SNeil Armstrong}; 179*7d750c35SNeil Armstrong 180*7d750c35SNeil Armstrong&pinctrl_periphs { 181*7d750c35SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 182*7d750c35SNeil Armstrong "", "", "", "", "", "", "", 183*7d750c35SNeil Armstrong "", "", "", "", "", "", "", 184*7d750c35SNeil Armstrong "Eth Link LED", "Eth Activity LED", 185*7d750c35SNeil Armstrong /* Bank GPIOH */ 186*7d750c35SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 187*7d750c35SNeil Armstrong "HDMI_5V_EN", "9J1 Header Pin2", 188*7d750c35SNeil Armstrong "Analog Audio Mute", 189*7d750c35SNeil Armstrong "2J3 Header Pin6", 190*7d750c35SNeil Armstrong "2J3 Header Pin5", 191*7d750c35SNeil Armstrong "2J3 Header Pin4", 192*7d750c35SNeil Armstrong "2J3 Header Pin3", 193*7d750c35SNeil Armstrong /* Bank BOOT */ 194*7d750c35SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 195*7d750c35SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 196*7d750c35SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 197*7d750c35SNeil Armstrong "ALT BOOT MODE", "", "", "", "eMMC Data Strobe", 198*7d750c35SNeil Armstrong /* Bank CARD */ 199*7d750c35SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 200*7d750c35SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 201*7d750c35SNeil Armstrong /* Bank GPIODV */ 202*7d750c35SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 203*7d750c35SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 204*7d750c35SNeil Armstrong "Green LED", "VCCK Enable", 205*7d750c35SNeil Armstrong "7J1 Header Pin27", "7J1 Header Pin28", 206*7d750c35SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 207*7d750c35SNeil Armstrong /* Bank GPIOX */ 208*7d750c35SNeil Armstrong "7J1 Header Pin22", "7J1 Header Pin26", 209*7d750c35SNeil Armstrong "7J1 Header Pin36", "7J1 Header Pin38", 210*7d750c35SNeil Armstrong "7J1 Header Pin40", "7J1 Header Pin37", 211*7d750c35SNeil Armstrong "7J1 Header Pin33", "7J1 Header Pin35", 212*7d750c35SNeil Armstrong "7J1 Header Pin19", "7J1 Header Pin21", 213*7d750c35SNeil Armstrong "7J1 Header Pin24", "7J1 Header Pin23", 214*7d750c35SNeil Armstrong "7J1 Header Pin8", "7J1 Header Pin10", 215*7d750c35SNeil Armstrong "7J1 Header Pin16", "7J1 Header Pin18", 216*7d750c35SNeil Armstrong "7J1 Header Pin32", "7J1 Header Pin29", 217*7d750c35SNeil Armstrong "7J1 Header Pin31", 218*7d750c35SNeil Armstrong /* Bank GPIOCLK */ 219*7d750c35SNeil Armstrong "7J1 Header Pin7", ""; 220*7d750c35SNeil Armstrong}; 221*7d750c35SNeil Armstrong 222*7d750c35SNeil Armstrong&saradc { 223*7d750c35SNeil Armstrong status = "okay"; 224*7d750c35SNeil Armstrong vref-supply = <&vddio_ao18>; 225*7d750c35SNeil Armstrong}; 226*7d750c35SNeil Armstrong 22796e7b5a1SNeil Armstrong/* SD card */ 22896e7b5a1SNeil Armstrong&sd_emmc_b { 22996e7b5a1SNeil Armstrong status = "okay"; 23096e7b5a1SNeil Armstrong pinctrl-0 = <&sdcard_pins>; 231*7d750c35SNeil Armstrong pinctrl-1 = <&sdcard_clk_gate_pins>; 232*7d750c35SNeil Armstrong pinctrl-names = "default", "clk-gate"; 23396e7b5a1SNeil Armstrong 23496e7b5a1SNeil Armstrong bus-width = <4>; 23596e7b5a1SNeil Armstrong cap-sd-highspeed; 236*7d750c35SNeil Armstrong sd-uhs-sdr12; 237*7d750c35SNeil Armstrong sd-uhs-sdr25; 238*7d750c35SNeil Armstrong sd-uhs-sdr50; 23996e7b5a1SNeil Armstrong max-frequency = <100000000>; 24096e7b5a1SNeil Armstrong disable-wp; 24196e7b5a1SNeil Armstrong 24296e7b5a1SNeil Armstrong cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 24396e7b5a1SNeil Armstrong cd-inverted; 24496e7b5a1SNeil Armstrong 24596e7b5a1SNeil Armstrong vmmc-supply = <&vcc_3v3>; 24696e7b5a1SNeil Armstrong vqmmc-supply = <&vcc_card>; 24796e7b5a1SNeil Armstrong}; 24896e7b5a1SNeil Armstrong 24996e7b5a1SNeil Armstrong/* eMMC */ 25096e7b5a1SNeil Armstrong&sd_emmc_c { 25196e7b5a1SNeil Armstrong status = "okay"; 252*7d750c35SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 253*7d750c35SNeil Armstrong pinctrl-1 = <&emmc_clk_gate_pins>; 254*7d750c35SNeil Armstrong pinctrl-names = "default", "clk-gate"; 25596e7b5a1SNeil Armstrong 25696e7b5a1SNeil Armstrong bus-width = <8>; 25796e7b5a1SNeil Armstrong cap-mmc-highspeed; 258*7d750c35SNeil Armstrong mmc-ddr-3_3v; 25996e7b5a1SNeil Armstrong max-frequency = <50000000>; 26096e7b5a1SNeil Armstrong non-removable; 26196e7b5a1SNeil Armstrong disable-wp; 26296e7b5a1SNeil Armstrong 26396e7b5a1SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 26496e7b5a1SNeil Armstrong vmmc-supply = <&vcc_3v3>; 26596e7b5a1SNeil Armstrong vqmmc-supply = <&vddio_boot>; 26696e7b5a1SNeil Armstrong}; 26796e7b5a1SNeil Armstrong 26896e7b5a1SNeil Armstrong&uart_AO { 26996e7b5a1SNeil Armstrong status = "okay"; 27096e7b5a1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 27196e7b5a1SNeil Armstrong pinctrl-names = "default"; 27296e7b5a1SNeil Armstrong}; 273