10449b8e3SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 20449b8e3SNeil Armstrong/* 30449b8e3SNeil Armstrong * Copyright (c) 2018 BayLibre, SAS. 40449b8e3SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com> 50449b8e3SNeil Armstrong * Author: Jerome Brunet <jbrunet@baylibre.com> 60449b8e3SNeil Armstrong */ 70449b8e3SNeil Armstrong 80449b8e3SNeil Armstrong/dts-v1/; 90449b8e3SNeil Armstrong 100449b8e3SNeil Armstrong#include <dt-bindings/input/input.h> 11c755c791SJerome Brunet#include <dt-bindings/sound/meson-aiu.h> 120449b8e3SNeil Armstrong 13b2037dafSNeil Armstrong#include "meson-gxl-s805x.dtsi" 140449b8e3SNeil Armstrong 150449b8e3SNeil Armstrong/ { 160449b8e3SNeil Armstrong compatible = "libretech,aml-s805x-ac", "amlogic,s805x", 170449b8e3SNeil Armstrong "amlogic,meson-gxl"; 18b1ae8ca5SChristian Hewitt model = "Libre Computer AML-S805X-AC"; 190449b8e3SNeil Armstrong 200449b8e3SNeil Armstrong aliases { 210449b8e3SNeil Armstrong serial0 = &uart_AO; 220449b8e3SNeil Armstrong ethernet0 = ðmac; 230449b8e3SNeil Armstrong spi0 = &spifc; 240449b8e3SNeil Armstrong }; 250449b8e3SNeil Armstrong 260449b8e3SNeil Armstrong chosen { 270449b8e3SNeil Armstrong stdout-path = "serial0:115200n8"; 280449b8e3SNeil Armstrong }; 290449b8e3SNeil Armstrong 300449b8e3SNeil Armstrong cvbs-connector { 310449b8e3SNeil Armstrong /* 320449b8e3SNeil Armstrong * The pads are present but no connector is soldered on 330449b8e3SNeil Armstrong * 2J2, so keep this off by default. 340449b8e3SNeil Armstrong */ 350449b8e3SNeil Armstrong status = "disabled"; 360449b8e3SNeil Armstrong compatible = "composite-video-connector"; 370449b8e3SNeil Armstrong 380449b8e3SNeil Armstrong port { 390449b8e3SNeil Armstrong cvbs_connector_in: endpoint { 400449b8e3SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 410449b8e3SNeil Armstrong }; 420449b8e3SNeil Armstrong }; 430449b8e3SNeil Armstrong }; 440449b8e3SNeil Armstrong 45f0ed445eSKrzysztof Kozlowski dc_5v: regulator-dc-5v { 460449b8e3SNeil Armstrong compatible = "regulator-fixed"; 470449b8e3SNeil Armstrong regulator-name = "DC_5V"; 480449b8e3SNeil Armstrong regulator-min-microvolt = <5000000>; 490449b8e3SNeil Armstrong regulator-max-microvolt = <5000000>; 500449b8e3SNeil Armstrong regulator-always-on; 510449b8e3SNeil Armstrong }; 520449b8e3SNeil Armstrong 530449b8e3SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 540449b8e3SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 550449b8e3SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 560449b8e3SNeil Armstrong }; 570449b8e3SNeil Armstrong 580449b8e3SNeil Armstrong hdmi-connector { 590449b8e3SNeil Armstrong compatible = "hdmi-connector"; 600449b8e3SNeil Armstrong type = "a"; 610449b8e3SNeil Armstrong 620449b8e3SNeil Armstrong port { 630449b8e3SNeil Armstrong hdmi_connector_in: endpoint { 640449b8e3SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 650449b8e3SNeil Armstrong }; 660449b8e3SNeil Armstrong }; 670449b8e3SNeil Armstrong }; 680449b8e3SNeil Armstrong 690449b8e3SNeil Armstrong memory@0 { 700449b8e3SNeil Armstrong device_type = "memory"; 710449b8e3SNeil Armstrong reg = <0x0 0x0 0x0 0x20000000>; 720449b8e3SNeil Armstrong }; 730449b8e3SNeil Armstrong 740449b8e3SNeil Armstrong vcck: regulator-vcck { 750449b8e3SNeil Armstrong compatible = "regulator-fixed"; 760449b8e3SNeil Armstrong regulator-name = "VCCK"; 770449b8e3SNeil Armstrong regulator-min-microvolt = <3300000>; 780449b8e3SNeil Armstrong regulator-max-microvolt = <3300000>; 790449b8e3SNeil Armstrong vin-supply = <&dc_5v>; 800449b8e3SNeil Armstrong 810449b8e3SNeil Armstrong /* 820449b8e3SNeil Armstrong * This is controlled by GPIOAO_9 we reserve this but 830449b8e3SNeil Armstrong * claiming it as done below reset the board anyway 840449b8e3SNeil Armstrong * Need to investigate this 850449b8e3SNeil Armstrong * 860449b8e3SNeil Armstrong * gpio = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 870449b8e3SNeil Armstrong * enable-active-high; 880449b8e3SNeil Armstrong */ 890449b8e3SNeil Armstrong regulator-always-on; 900449b8e3SNeil Armstrong }; 910449b8e3SNeil Armstrong 92f0ed445eSKrzysztof Kozlowski vcc_3v3: regulator-vcc-3v3 { 930449b8e3SNeil Armstrong compatible = "regulator-fixed"; 940449b8e3SNeil Armstrong regulator-name = "VCC_3V3"; 950449b8e3SNeil Armstrong regulator-min-microvolt = <3300000>; 960449b8e3SNeil Armstrong regulator-max-microvolt = <3300000>; 970449b8e3SNeil Armstrong vin-supply = <&dc_5v>; 980449b8e3SNeil Armstrong regulator-always-on; 990449b8e3SNeil Armstrong }; 1000449b8e3SNeil Armstrong 101f0ed445eSKrzysztof Kozlowski vddio_ao18: regulator-vddio-ao18 { 102451323f8SJerome Brunet compatible = "regulator-fixed"; 103451323f8SJerome Brunet regulator-name = "VDDIO_AO18"; 104451323f8SJerome Brunet regulator-min-microvolt = <1800000>; 105451323f8SJerome Brunet regulator-max-microvolt = <1800000>; 106451323f8SJerome Brunet vin-supply = <&vcc_3v3>; 107451323f8SJerome Brunet regulator-always-on; 108451323f8SJerome Brunet }; 109451323f8SJerome Brunet 110f0ed445eSKrzysztof Kozlowski vddio_boot: regulator-vddio-boot { 1110449b8e3SNeil Armstrong compatible = "regulator-fixed"; 1120449b8e3SNeil Armstrong regulator-name = "VDDIO_BOOT"; 1130449b8e3SNeil Armstrong regulator-min-microvolt = <1800000>; 1140449b8e3SNeil Armstrong regulator-max-microvolt = <1800000>; 1150449b8e3SNeil Armstrong vin-supply = <&vcc_3v3>; 1160449b8e3SNeil Armstrong regulator-always-on; 1170449b8e3SNeil Armstrong }; 118c755c791SJerome Brunet 119c755c791SJerome Brunet sound { 120c755c791SJerome Brunet compatible = "amlogic,gx-sound-card"; 121933b80edSChristian Hewitt model = "LIBRETECH-AC"; 122451323f8SJerome Brunet audio-widgets = "Speaker", "9J5-3 LEFT", 123451323f8SJerome Brunet "Speaker", "9J5-2 RIGHT"; 124451323f8SJerome Brunet audio-routing = "9J5-3 LEFT", "ACODEC LOLN", 125451323f8SJerome Brunet "9J5-2 RIGHT", "ACODEC LORN"; 126*9b5d2511SNeil Armstrong clocks = <&clkc CLKID_MPLL0>, 127*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL1>, 128*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL2>; 129*9b5d2511SNeil Armstrong 130c755c791SJerome Brunet assigned-clocks = <&clkc CLKID_MPLL0>, 131c755c791SJerome Brunet <&clkc CLKID_MPLL1>, 132c755c791SJerome Brunet <&clkc CLKID_MPLL2>; 133c755c791SJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 134c755c791SJerome Brunet assigned-clock-rates = <294912000>, 135c755c791SJerome Brunet <270950400>, 136c755c791SJerome Brunet <393216000>; 137c755c791SJerome Brunet 138c755c791SJerome Brunet dai-link-0 { 139c755c791SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 140c755c791SJerome Brunet }; 141c755c791SJerome Brunet 142c755c791SJerome Brunet dai-link-1 { 143c755c791SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 144c755c791SJerome Brunet dai-format = "i2s"; 145c755c791SJerome Brunet mclk-fs = <256>; 146c755c791SJerome Brunet 147c755c791SJerome Brunet codec-0 { 148c755c791SJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 149c755c791SJerome Brunet }; 150451323f8SJerome Brunet 151451323f8SJerome Brunet codec-1 { 152451323f8SJerome Brunet sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 153451323f8SJerome Brunet }; 154c755c791SJerome Brunet }; 155c755c791SJerome Brunet 156c755c791SJerome Brunet dai-link-2 { 157c755c791SJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 158c755c791SJerome Brunet 159c755c791SJerome Brunet codec-0 { 160c755c791SJerome Brunet sound-dai = <&hdmi_tx>; 161c755c791SJerome Brunet }; 162c755c791SJerome Brunet }; 163451323f8SJerome Brunet 164451323f8SJerome Brunet dai-link-3 { 165451323f8SJerome Brunet sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 166451323f8SJerome Brunet 167451323f8SJerome Brunet codec-0 { 168451323f8SJerome Brunet sound-dai = <&acodec>; 169c755c791SJerome Brunet }; 170c755c791SJerome Brunet }; 171451323f8SJerome Brunet }; 172451323f8SJerome Brunet}; 173451323f8SJerome Brunet 174451323f8SJerome Brunet&acodec { 175451323f8SJerome Brunet AVDD-supply = <&vddio_ao18>; 176451323f8SJerome Brunet status = "okay"; 177451323f8SJerome Brunet}; 178c755c791SJerome Brunet 179c755c791SJerome Brunet&aiu { 180c755c791SJerome Brunet status = "okay"; 1810449b8e3SNeil Armstrong}; 1820449b8e3SNeil Armstrong 1830449b8e3SNeil Armstrong&cec_AO { 1840449b8e3SNeil Armstrong status = "okay"; 1850449b8e3SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 1860449b8e3SNeil Armstrong pinctrl-names = "default"; 1870449b8e3SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 1880449b8e3SNeil Armstrong}; 1890449b8e3SNeil Armstrong 1900449b8e3SNeil Armstrong&cvbs_vdac_port { 1910449b8e3SNeil Armstrong cvbs_vdac_out: endpoint { 1920449b8e3SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 1930449b8e3SNeil Armstrong }; 1940449b8e3SNeil Armstrong}; 1950449b8e3SNeil Armstrong 1960449b8e3SNeil Armstrongðmac { 1970449b8e3SNeil Armstrong status = "okay"; 1980449b8e3SNeil Armstrong}; 1990449b8e3SNeil Armstrong 2000449b8e3SNeil Armstrong&internal_phy { 2010449b8e3SNeil Armstrong pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 2020449b8e3SNeil Armstrong pinctrl-names = "default"; 2030449b8e3SNeil Armstrong}; 2040449b8e3SNeil Armstrong 2050449b8e3SNeil Armstrong&ir { 2060449b8e3SNeil Armstrong status = "okay"; 2070449b8e3SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 2080449b8e3SNeil Armstrong pinctrl-names = "default"; 2090449b8e3SNeil Armstrong}; 2100449b8e3SNeil Armstrong 2110449b8e3SNeil Armstrong&hdmi_tx { 2120449b8e3SNeil Armstrong status = "okay"; 2130449b8e3SNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 2140449b8e3SNeil Armstrong pinctrl-names = "default"; 2150449b8e3SNeil Armstrong}; 2160449b8e3SNeil Armstrong 2170449b8e3SNeil Armstrong&hdmi_tx_tmds_port { 2180449b8e3SNeil Armstrong hdmi_tx_tmds_out: endpoint { 2190449b8e3SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 2200449b8e3SNeil Armstrong }; 2210449b8e3SNeil Armstrong}; 2220449b8e3SNeil Armstrong 2230449b8e3SNeil Armstrong&gpio_ao { 2240449b8e3SNeil Armstrong gpio-line-names = "UART TX", 2250449b8e3SNeil Armstrong "UART RX", 2260449b8e3SNeil Armstrong "7J1 Header Pin31", 2270449b8e3SNeil Armstrong "", "", "", "", 2280449b8e3SNeil Armstrong "IR In", 2290449b8e3SNeil Armstrong "HDMI CEC", 2300449b8e3SNeil Armstrong "5V VCCK Regulator", 2310449b8e3SNeil Armstrong /* GPIO_TEST_N */ 2320449b8e3SNeil Armstrong ""; 2330449b8e3SNeil Armstrong}; 2340449b8e3SNeil Armstrong 2350449b8e3SNeil Armstrong&gpio { 2360449b8e3SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 2370449b8e3SNeil Armstrong "", "", "", "", "", "", "", 2380449b8e3SNeil Armstrong "", "", "", "", "", "", "", 2390449b8e3SNeil Armstrong "Eth Link LED", "Eth Activity LED", 2400449b8e3SNeil Armstrong /* Bank GPIOH */ 2410449b8e3SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 2420449b8e3SNeil Armstrong "", "7J1 Header Pin13", 2430449b8e3SNeil Armstrong "7J1 Header Pin15", 2440449b8e3SNeil Armstrong "7J1 Header Pin7", 2450449b8e3SNeil Armstrong "7J1 Header Pin12", 2460449b8e3SNeil Armstrong "7J1 Header Pin16", 2470449b8e3SNeil Armstrong "7J1 Header Pin18", 2480449b8e3SNeil Armstrong /* Bank BOOT */ 2490449b8e3SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 2500449b8e3SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 2510449b8e3SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 2520449b8e3SNeil Armstrong "SPI NOR MOSI", "SPI NOR MISO", "SPI NOR Clk", 2530449b8e3SNeil Armstrong "", "SPI NOR Chip Select", 2540449b8e3SNeil Armstrong /* Bank CARD */ 2550449b8e3SNeil Armstrong "", "", "", "", "", "", "", 2560449b8e3SNeil Armstrong /* Bank GPIODV */ 2570449b8e3SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 2580449b8e3SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 2590449b8e3SNeil Armstrong "7J1 Header Pin27", "7J1 Header Pin28", "", 2600449b8e3SNeil Armstrong "7J1 Header Pin29", 2610449b8e3SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 2620449b8e3SNeil Armstrong /* Bank GPIOX */ 2630449b8e3SNeil Armstrong "7J1 Header Pin22", "7J1 Header Pin26", 2640449b8e3SNeil Armstrong "7J1 Header Pin36", "7J1 Header Pin38", 2650449b8e3SNeil Armstrong "7J1 Header Pin40", "7J1 Header Pin37", 2660449b8e3SNeil Armstrong "7J1 Header Pin33", "7J1 Header Pin35", 2670449b8e3SNeil Armstrong "7J1 Header Pin19", "7J1 Header Pin21", 2680449b8e3SNeil Armstrong "7J1 Header Pin24", "7J1 Header Pin23", 2690449b8e3SNeil Armstrong "7J1 Header Pin8", "7J1 Header Pin10", 2700449b8e3SNeil Armstrong "", "", "7J1 Header Pin32", "", "", 2710449b8e3SNeil Armstrong /* Bank GPIOCLK */ 2720449b8e3SNeil Armstrong "", ""; 2730449b8e3SNeil Armstrong}; 2740449b8e3SNeil Armstrong 2750449b8e3SNeil Armstrong&saradc { 2760449b8e3SNeil Armstrong status = "okay"; 2770449b8e3SNeil Armstrong vref-supply = <&vddio_boot>; 2780449b8e3SNeil Armstrong}; 2790449b8e3SNeil Armstrong 2800449b8e3SNeil Armstrong/* eMMC */ 2810449b8e3SNeil Armstrong&sd_emmc_c { 2820449b8e3SNeil Armstrong status = "okay"; 2830449b8e3SNeil Armstrong pinctrl-0 = <&emmc_pins>; 2840449b8e3SNeil Armstrong pinctrl-1 = <&emmc_clk_gate_pins>; 2850449b8e3SNeil Armstrong pinctrl-names = "default", "clk-gate"; 2860449b8e3SNeil Armstrong 2870449b8e3SNeil Armstrong bus-width = <8>; 2880449b8e3SNeil Armstrong cap-mmc-highspeed; 2890449b8e3SNeil Armstrong mmc-ddr-1_8v; 2900449b8e3SNeil Armstrong mmc-hs200-1_8v; 2910449b8e3SNeil Armstrong max-frequency = <200000000>; 2920449b8e3SNeil Armstrong disable-wp; 2930449b8e3SNeil Armstrong 2940449b8e3SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 2950449b8e3SNeil Armstrong vmmc-supply = <&vcc_3v3>; 2960449b8e3SNeil Armstrong vqmmc-supply = <&vddio_boot>; 2970449b8e3SNeil Armstrong}; 2980449b8e3SNeil Armstrong 2990449b8e3SNeil Armstrong&spifc { 3000449b8e3SNeil Armstrong status = "okay"; 3010449b8e3SNeil Armstrong pinctrl-0 = <&nor_pins>; 3020449b8e3SNeil Armstrong pinctrl-names = "default"; 3030449b8e3SNeil Armstrong 3048771ce5eSKrzysztof Kozlowski w25q32: flash@0 { 3050449b8e3SNeil Armstrong #address-cells = <1>; 3060449b8e3SNeil Armstrong #size-cells = <1>; 3070449b8e3SNeil Armstrong compatible = "jedec,spi-nor"; 3080449b8e3SNeil Armstrong reg = <0>; 3090449b8e3SNeil Armstrong spi-max-frequency = <3000000>; 3100449b8e3SNeil Armstrong }; 3110449b8e3SNeil Armstrong}; 3120449b8e3SNeil Armstrong 3130449b8e3SNeil Armstrong&uart_AO { 3140449b8e3SNeil Armstrong status = "okay"; 3150449b8e3SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 3160449b8e3SNeil Armstrong pinctrl-names = "default"; 3170449b8e3SNeil Armstrong}; 3180449b8e3SNeil Armstrong 3192f9139c2SMartin Blumenstingl&usb { 3200449b8e3SNeil Armstrong status = "okay"; 3212f9139c2SMartin Blumenstingl dr_mode = "host"; 3220449b8e3SNeil Armstrong}; 323