1fd477164SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2fd477164SNeil Armstrong/* 3fd477164SNeil Armstrong * Copyright (c) 2018 BayLibre, SAS. 4fd477164SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com> 5fd477164SNeil Armstrong * Author: Jerome Brunet <jbrunet@baylibre.com> 6fd477164SNeil Armstrong */ 7fd477164SNeil Armstrong 8fd477164SNeil Armstrong/dts-v1/; 9fd477164SNeil Armstrong 10fd477164SNeil Armstrong#include <dt-bindings/input/input.h> 11*0a62b3ccSJerome Brunet#include <dt-bindings/sound/meson-aiu.h> 12fd477164SNeil Armstrong 13b2037dafSNeil Armstrong#include "meson-gxl-s805x.dtsi" 14fd477164SNeil Armstrong 15fd477164SNeil Armstrong/ { 16fd477164SNeil Armstrong compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl"; 17fd477164SNeil Armstrong model = "Amlogic Meson GXL (S805X) P241 Development Board"; 18fd477164SNeil Armstrong 19fd477164SNeil Armstrong aliases { 20fd477164SNeil Armstrong serial0 = &uart_AO; 21fd477164SNeil Armstrong serial1 = &uart_A; 22fd477164SNeil Armstrong ethernet0 = ðmac; 23fd477164SNeil Armstrong }; 24fd477164SNeil Armstrong 25*0a62b3ccSJerome Brunet au2: analog-amplifier { 26*0a62b3ccSJerome Brunet compatible = "simple-audio-amplifier"; 27*0a62b3ccSJerome Brunet sound-name-prefix = "AU2"; 28*0a62b3ccSJerome Brunet VCC-supply = <&vcc_5v>; 29*0a62b3ccSJerome Brunet enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 30*0a62b3ccSJerome Brunet }; 31*0a62b3ccSJerome Brunet 32fd477164SNeil Armstrong chosen { 33fd477164SNeil Armstrong stdout-path = "serial0:115200n8"; 34fd477164SNeil Armstrong }; 35fd477164SNeil Armstrong 36fd477164SNeil Armstrong cvbs-connector { 37fd477164SNeil Armstrong compatible = "composite-video-connector"; 38fd477164SNeil Armstrong 39fd477164SNeil Armstrong port { 40fd477164SNeil Armstrong cvbs_connector_in: endpoint { 41fd477164SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 42fd477164SNeil Armstrong }; 43fd477164SNeil Armstrong }; 44fd477164SNeil Armstrong }; 45fd477164SNeil Armstrong 46fd477164SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 47fd477164SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 48fd477164SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 49fd477164SNeil Armstrong }; 50fd477164SNeil Armstrong 51fd477164SNeil Armstrong hdmi-connector { 52fd477164SNeil Armstrong compatible = "hdmi-connector"; 53fd477164SNeil Armstrong type = "a"; 54fd477164SNeil Armstrong 55fd477164SNeil Armstrong port { 56fd477164SNeil Armstrong hdmi_connector_in: endpoint { 57fd477164SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 58fd477164SNeil Armstrong }; 59fd477164SNeil Armstrong }; 60fd477164SNeil Armstrong }; 61fd477164SNeil Armstrong 62fd477164SNeil Armstrong memory@0 { 63fd477164SNeil Armstrong device_type = "memory"; 64fd477164SNeil Armstrong reg = <0x0 0x0 0x0 0x20000000>; 65fd477164SNeil Armstrong }; 66fd477164SNeil Armstrong 67fd477164SNeil Armstrong vddio_boot: regulator-vddio_boot { 68fd477164SNeil Armstrong compatible = "regulator-fixed"; 69fd477164SNeil Armstrong regulator-name = "VDDIO_BOOT"; 70fd477164SNeil Armstrong regulator-min-microvolt = <1800000>; 71fd477164SNeil Armstrong regulator-max-microvolt = <1800000>; 72fd477164SNeil Armstrong }; 73fd477164SNeil Armstrong 74fd477164SNeil Armstrong vddao_3v3: regulator-vddao_3v3 { 75fd477164SNeil Armstrong compatible = "regulator-fixed"; 76fd477164SNeil Armstrong regulator-name = "VDDAO_3V3"; 77fd477164SNeil Armstrong regulator-min-microvolt = <3300000>; 78fd477164SNeil Armstrong regulator-max-microvolt = <3300000>; 79fd477164SNeil Armstrong }; 80fd477164SNeil Armstrong 81fd477164SNeil Armstrong vddio_ao18: regulator-vddio_ao18 { 82fd477164SNeil Armstrong compatible = "regulator-fixed"; 83fd477164SNeil Armstrong regulator-name = "VDDIO_AO18"; 84fd477164SNeil Armstrong regulator-min-microvolt = <1800000>; 85fd477164SNeil Armstrong regulator-max-microvolt = <1800000>; 86fd477164SNeil Armstrong }; 87fd477164SNeil Armstrong 88fd477164SNeil Armstrong vcc_3v3: regulator-vcc_3v3 { 89fd477164SNeil Armstrong compatible = "regulator-fixed"; 90fd477164SNeil Armstrong regulator-name = "VCC_3V3"; 91fd477164SNeil Armstrong regulator-min-microvolt = <3300000>; 92fd477164SNeil Armstrong regulator-max-microvolt = <3300000>; 93fd477164SNeil Armstrong }; 94fd477164SNeil Armstrong 9575fb3b1bSJerome Brunet vcc_5v: regulator-vcc-5v { 9675fb3b1bSJerome Brunet compatible = "regulator-fixed"; 9775fb3b1bSJerome Brunet regulator-name = "VCC_5V"; 9875fb3b1bSJerome Brunet regulator-min-microvolt = <5000000>; 9975fb3b1bSJerome Brunet regulator-max-microvolt = <5000000>; 10075fb3b1bSJerome Brunet }; 10175fb3b1bSJerome Brunet 10275fb3b1bSJerome Brunet 103fd477164SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 104fd477164SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 105fd477164SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 106fd477164SNeil Armstrong }; 107fd477164SNeil Armstrong 108fd477164SNeil Armstrong wifi32k: wifi32k { 109fd477164SNeil Armstrong compatible = "pwm-clock"; 110fd477164SNeil Armstrong #clock-cells = <0>; 111fd477164SNeil Armstrong clock-frequency = <32768>; 112fd477164SNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 113fd477164SNeil Armstrong }; 114fd477164SNeil Armstrong 115fd477164SNeil Armstrong sdio_pwrseq: sdio-pwrseq { 116fd477164SNeil Armstrong compatible = "mmc-pwrseq-simple"; 117fd477164SNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 118fd477164SNeil Armstrong clocks = <&wifi32k>; 119fd477164SNeil Armstrong clock-names = "ext_clock"; 120fd477164SNeil Armstrong }; 121*0a62b3ccSJerome Brunet 122*0a62b3ccSJerome Brunet sound { 123*0a62b3ccSJerome Brunet compatible = "amlogic,gx-sound-card"; 124*0a62b3ccSJerome Brunet model = "GXL-P241"; 125*0a62b3ccSJerome Brunet audio-aux-devs = <&au2>; 126*0a62b3ccSJerome Brunet audio-widgets = "Line", "Lineout"; 127*0a62b3ccSJerome Brunet audio-routing = "AU2 INL", "ACODEC LOLN", 128*0a62b3ccSJerome Brunet "AU2 INR", "ACODEC LORN", 129*0a62b3ccSJerome Brunet "Lineout", "AU2 OUTL", 130*0a62b3ccSJerome Brunet "Lineout", "AU2 OUTR"; 131*0a62b3ccSJerome Brunet assigned-clocks = <&clkc CLKID_MPLL0>, 132*0a62b3ccSJerome Brunet <&clkc CLKID_MPLL1>, 133*0a62b3ccSJerome Brunet <&clkc CLKID_MPLL2>; 134*0a62b3ccSJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 135*0a62b3ccSJerome Brunet assigned-clock-rates = <294912000>, 136*0a62b3ccSJerome Brunet <270950400>, 137*0a62b3ccSJerome Brunet <393216000>; 138*0a62b3ccSJerome Brunet status = "okay"; 139*0a62b3ccSJerome Brunet 140*0a62b3ccSJerome Brunet dai-link-0 { 141*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 142*0a62b3ccSJerome Brunet }; 143*0a62b3ccSJerome Brunet 144*0a62b3ccSJerome Brunet dai-link-1 { 145*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 146*0a62b3ccSJerome Brunet dai-format = "i2s"; 147*0a62b3ccSJerome Brunet mclk-fs = <256>; 148*0a62b3ccSJerome Brunet 149*0a62b3ccSJerome Brunet codec-0 { 150*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 151*0a62b3ccSJerome Brunet }; 152*0a62b3ccSJerome Brunet 153*0a62b3ccSJerome Brunet codec-1 { 154*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 155*0a62b3ccSJerome Brunet }; 156*0a62b3ccSJerome Brunet }; 157*0a62b3ccSJerome Brunet 158*0a62b3ccSJerome Brunet dai-link-2 { 159*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 160*0a62b3ccSJerome Brunet 161*0a62b3ccSJerome Brunet codec-0 { 162*0a62b3ccSJerome Brunet sound-dai = <&hdmi_tx>; 163*0a62b3ccSJerome Brunet }; 164*0a62b3ccSJerome Brunet }; 165*0a62b3ccSJerome Brunet 166*0a62b3ccSJerome Brunet dai-link-3 { 167*0a62b3ccSJerome Brunet sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 168*0a62b3ccSJerome Brunet 169*0a62b3ccSJerome Brunet codec-0 { 170*0a62b3ccSJerome Brunet sound-dai = <&acodec>; 171*0a62b3ccSJerome Brunet }; 172*0a62b3ccSJerome Brunet }; 173*0a62b3ccSJerome Brunet }; 174*0a62b3ccSJerome Brunet}; 175*0a62b3ccSJerome Brunet 176*0a62b3ccSJerome Brunet&acodec { 177*0a62b3ccSJerome Brunet AVDD-supply = <&vddio_ao18>; 178*0a62b3ccSJerome Brunet status = "okay"; 179*0a62b3ccSJerome Brunet}; 180*0a62b3ccSJerome Brunet 181*0a62b3ccSJerome Brunet&aiu { 182*0a62b3ccSJerome Brunet status = "okay"; 183fd477164SNeil Armstrong}; 184fd477164SNeil Armstrong 185fd477164SNeil Armstrong&cec_AO { 186fd477164SNeil Armstrong status = "okay"; 187fd477164SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 188fd477164SNeil Armstrong pinctrl-names = "default"; 189fd477164SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 190fd477164SNeil Armstrong}; 191fd477164SNeil Armstrong 192fd477164SNeil Armstrong&cvbs_vdac_port { 193fd477164SNeil Armstrong cvbs_vdac_out: endpoint { 194fd477164SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 195fd477164SNeil Armstrong }; 196fd477164SNeil Armstrong}; 197fd477164SNeil Armstrong 198fd477164SNeil Armstrongðmac { 199fd477164SNeil Armstrong status = "okay"; 200fd477164SNeil Armstrong}; 201fd477164SNeil Armstrong 202fd477164SNeil Armstrong&internal_phy { 203fd477164SNeil Armstrong pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 204fd477164SNeil Armstrong pinctrl-names = "default"; 205fd477164SNeil Armstrong}; 206fd477164SNeil Armstrong 207fd477164SNeil Armstrong&ir { 208fd477164SNeil Armstrong status = "okay"; 209fd477164SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 210fd477164SNeil Armstrong pinctrl-names = "default"; 211fd477164SNeil Armstrong}; 212fd477164SNeil Armstrong 213fd477164SNeil Armstrong&hdmi_tx { 214fd477164SNeil Armstrong status = "okay"; 215fd477164SNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 216fd477164SNeil Armstrong pinctrl-names = "default"; 21775fb3b1bSJerome Brunet hdmi-supply = <&vcc_5v>; 218fd477164SNeil Armstrong}; 219fd477164SNeil Armstrong 220fd477164SNeil Armstrong&hdmi_tx_tmds_port { 221fd477164SNeil Armstrong hdmi_tx_tmds_out: endpoint { 222fd477164SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 223fd477164SNeil Armstrong }; 224fd477164SNeil Armstrong}; 225fd477164SNeil Armstrong 226fd477164SNeil Armstrong&saradc { 227fd477164SNeil Armstrong status = "okay"; 228fd477164SNeil Armstrong vref-supply = <&vddio_ao18>; 229fd477164SNeil Armstrong}; 230fd477164SNeil Armstrong 231fd477164SNeil Armstrong/* Wireless SDIO Module */ 232fd477164SNeil Armstrong&sd_emmc_a { 233fd477164SNeil Armstrong status = "okay"; 234fd477164SNeil Armstrong pinctrl-0 = <&sdio_pins>; 235fd477164SNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 236fd477164SNeil Armstrong pinctrl-names = "default", "clk-gate"; 237fd477164SNeil Armstrong #address-cells = <1>; 238fd477164SNeil Armstrong #size-cells = <0>; 239fd477164SNeil Armstrong 240fd477164SNeil Armstrong bus-width = <4>; 241fd477164SNeil Armstrong cap-sd-highspeed; 242adc52bf7SJerome Brunet max-frequency = <50000000>; 243fd477164SNeil Armstrong 244fd477164SNeil Armstrong non-removable; 245fd477164SNeil Armstrong disable-wp; 246fd477164SNeil Armstrong 247cfd7a215SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 248cfd7a215SNeil Armstrong keep-power-in-suspend; 249cfd7a215SNeil Armstrong 250fd477164SNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 251fd477164SNeil Armstrong 252fd477164SNeil Armstrong vmmc-supply = <&vddao_3v3>; 253fd477164SNeil Armstrong vqmmc-supply = <&vddio_boot>; 254fd477164SNeil Armstrong}; 255fd477164SNeil Armstrong 256fd477164SNeil Armstrong/* eMMC */ 257fd477164SNeil Armstrong&sd_emmc_c { 258fd477164SNeil Armstrong status = "okay"; 259fd477164SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 260fd477164SNeil Armstrong pinctrl-1 = <&emmc_clk_gate_pins>; 261fd477164SNeil Armstrong pinctrl-names = "default", "clk-gate"; 262fd477164SNeil Armstrong 263fd477164SNeil Armstrong bus-width = <8>; 264fd477164SNeil Armstrong cap-mmc-highspeed; 265fd477164SNeil Armstrong max-frequency = <200000000>; 266fd477164SNeil Armstrong non-removable; 267fd477164SNeil Armstrong disable-wp; 268fd477164SNeil Armstrong mmc-ddr-1_8v; 269fd477164SNeil Armstrong mmc-hs200-1_8v; 270fd477164SNeil Armstrong 271fd477164SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 272fd477164SNeil Armstrong vmmc-supply = <&vcc_3v3>; 273fd477164SNeil Armstrong vqmmc-supply = <&vddio_boot>; 274fd477164SNeil Armstrong}; 275fd477164SNeil Armstrong 276fd477164SNeil Armstrong&pwm_ef { 277fd477164SNeil Armstrong status = "okay"; 278fd477164SNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 279fd477164SNeil Armstrong pinctrl-names = "default"; 280fd477164SNeil Armstrong clocks = <&clkc CLKID_FCLK_DIV4>; 281fd477164SNeil Armstrong clock-names = "clkin0"; 282fd477164SNeil Armstrong}; 283fd477164SNeil Armstrong 284fd477164SNeil Armstrong/* This is connected to the Bluetooth module: */ 285fd477164SNeil Armstrong&uart_A { 286fd477164SNeil Armstrong status = "okay"; 287fd477164SNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 288fd477164SNeil Armstrong pinctrl-names = "default"; 289fd477164SNeil Armstrong uart-has-rtscts; 290fd477164SNeil Armstrong}; 291fd477164SNeil Armstrong 292fd477164SNeil Armstrong&uart_AO { 293fd477164SNeil Armstrong status = "okay"; 294fd477164SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 295fd477164SNeil Armstrong pinctrl-names = "default"; 296fd477164SNeil Armstrong}; 297fd477164SNeil Armstrong 2982f9139c2SMartin Blumenstingl&usb { 299fd477164SNeil Armstrong status = "okay"; 3002f9139c2SMartin Blumenstingl dr_mode = "host"; 301fd477164SNeil Armstrong}; 30275fb3b1bSJerome Brunet 30375fb3b1bSJerome Brunet&usb2_phy0 { 30475fb3b1bSJerome Brunet phy-supply = <&vcc_5v>; 30575fb3b1bSJerome Brunet}; 306