1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2bb51b535SNeil Armstrong/* 3bb51b535SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc. 4bb51b535SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com> 5bb51b535SNeil Armstrong */ 6bb51b535SNeil Armstrong 7bb51b535SNeil Armstrong/* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either 8bb51b535SNeil Armstrong * the pin-compatible S912 (GXM) or S905D (GXL) SoCs. 9bb51b535SNeil Armstrong */ 10bb51b535SNeil Armstrong 11*3ffeb953SJerome Brunet#include <dt-bindings/sound/meson-aiu.h> 12*3ffeb953SJerome Brunet 13bb51b535SNeil Armstrong/ { 14bb51b535SNeil Armstrong aliases { 15bb51b535SNeil Armstrong serial0 = &uart_AO; 16059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 17bb51b535SNeil Armstrong }; 18bb51b535SNeil Armstrong 19*3ffeb953SJerome Brunet spdif_dit: audio-codec-0 { 20*3ffeb953SJerome Brunet #sound-dai-cells = <0>; 21*3ffeb953SJerome Brunet compatible = "linux,spdif-dit"; 22*3ffeb953SJerome Brunet status = "okay"; 23*3ffeb953SJerome Brunet sound-name-prefix = "DIT"; 24*3ffeb953SJerome Brunet }; 25*3ffeb953SJerome Brunet 26bb51b535SNeil Armstrong chosen { 27bb51b535SNeil Armstrong stdout-path = "serial0:115200n8"; 28bb51b535SNeil Armstrong }; 29bb51b535SNeil Armstrong 30bb51b535SNeil Armstrong memory@0 { 31bb51b535SNeil Armstrong device_type = "memory"; 32bb51b535SNeil Armstrong reg = <0x0 0x0 0x0 0x80000000>; 33bb51b535SNeil Armstrong }; 34bb51b535SNeil Armstrong 35b409f625SNeil Armstrong hdmi_5v: regulator-hdmi-5v { 36b409f625SNeil Armstrong compatible = "regulator-fixed"; 37b409f625SNeil Armstrong 38b409f625SNeil Armstrong regulator-name = "HDMI_5V"; 39b409f625SNeil Armstrong regulator-min-microvolt = <5000000>; 40b409f625SNeil Armstrong regulator-max-microvolt = <5000000>; 41b409f625SNeil Armstrong 42b409f625SNeil Armstrong gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 43b409f625SNeil Armstrong enable-active-high; 44b409f625SNeil Armstrong regulator-always-on; 45b409f625SNeil Armstrong }; 46b409f625SNeil Armstrong 4741ed2e0dSMartin Blumenstingl vddio_ao18: regulator-vddio_ao18 { 4841ed2e0dSMartin Blumenstingl compatible = "regulator-fixed"; 4941ed2e0dSMartin Blumenstingl regulator-name = "VDDIO_AO18"; 5041ed2e0dSMartin Blumenstingl regulator-min-microvolt = <1800000>; 5141ed2e0dSMartin Blumenstingl regulator-max-microvolt = <1800000>; 5241ed2e0dSMartin Blumenstingl }; 5341ed2e0dSMartin Blumenstingl 54bb51b535SNeil Armstrong vddio_boot: regulator-vddio_boot { 55bb51b535SNeil Armstrong compatible = "regulator-fixed"; 56bb51b535SNeil Armstrong regulator-name = "VDDIO_BOOT"; 57bb51b535SNeil Armstrong regulator-min-microvolt = <1800000>; 58bb51b535SNeil Armstrong regulator-max-microvolt = <1800000>; 59bb51b535SNeil Armstrong }; 60bb51b535SNeil Armstrong 61bb51b535SNeil Armstrong vddao_3v3: regulator-vddao_3v3 { 62bb51b535SNeil Armstrong compatible = "regulator-fixed"; 63bb51b535SNeil Armstrong regulator-name = "VDDAO_3V3"; 64bb51b535SNeil Armstrong regulator-min-microvolt = <3300000>; 65bb51b535SNeil Armstrong regulator-max-microvolt = <3300000>; 66bb51b535SNeil Armstrong }; 67bb51b535SNeil Armstrong 68bb51b535SNeil Armstrong vcc_3v3: regulator-vcc_3v3 { 69bb51b535SNeil Armstrong compatible = "regulator-fixed"; 70bb51b535SNeil Armstrong regulator-name = "VCC_3V3"; 71bb51b535SNeil Armstrong regulator-min-microvolt = <3300000>; 72bb51b535SNeil Armstrong regulator-max-microvolt = <3300000>; 73bb51b535SNeil Armstrong }; 74bb51b535SNeil Armstrong 75bb51b535SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 76bb51b535SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 77bb51b535SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 78bb51b535SNeil Armstrong }; 79bb51b535SNeil Armstrong 80bb51b535SNeil Armstrong wifi32k: wifi32k { 81bb51b535SNeil Armstrong compatible = "pwm-clock"; 82bb51b535SNeil Armstrong #clock-cells = <0>; 83bb51b535SNeil Armstrong clock-frequency = <32768>; 84bb51b535SNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 85bb51b535SNeil Armstrong }; 86bb51b535SNeil Armstrong 87bb51b535SNeil Armstrong sdio_pwrseq: sdio-pwrseq { 88bb51b535SNeil Armstrong compatible = "mmc-pwrseq-simple"; 89bb51b535SNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 90bb51b535SNeil Armstrong clocks = <&wifi32k>; 91bb51b535SNeil Armstrong clock-names = "ext_clock"; 92bb51b535SNeil Armstrong }; 936939db7eSNeil Armstrong 946939db7eSNeil Armstrong cvbs-connector { 956939db7eSNeil Armstrong compatible = "composite-video-connector"; 966939db7eSNeil Armstrong 976939db7eSNeil Armstrong port { 986939db7eSNeil Armstrong cvbs_connector_in: endpoint { 996939db7eSNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 1006939db7eSNeil Armstrong }; 1016939db7eSNeil Armstrong }; 1026939db7eSNeil Armstrong }; 1036939db7eSNeil Armstrong 1046939db7eSNeil Armstrong hdmi-connector { 1056939db7eSNeil Armstrong compatible = "hdmi-connector"; 1066939db7eSNeil Armstrong type = "a"; 1076939db7eSNeil Armstrong 1086939db7eSNeil Armstrong port { 1096939db7eSNeil Armstrong hdmi_connector_in: endpoint { 1106939db7eSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 1116939db7eSNeil Armstrong }; 1126939db7eSNeil Armstrong }; 1136939db7eSNeil Armstrong }; 114*3ffeb953SJerome Brunet 115*3ffeb953SJerome Brunet sound { 116*3ffeb953SJerome Brunet compatible = "amlogic,gx-sound-card"; 117*3ffeb953SJerome Brunet model = "GX-P230-Q200"; 118*3ffeb953SJerome Brunet assigned-clocks = <&clkc CLKID_MPLL0>, 119*3ffeb953SJerome Brunet <&clkc CLKID_MPLL1>, 120*3ffeb953SJerome Brunet <&clkc CLKID_MPLL2>; 121*3ffeb953SJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 122*3ffeb953SJerome Brunet assigned-clock-rates = <294912000>, 123*3ffeb953SJerome Brunet <270950400>, 124*3ffeb953SJerome Brunet <393216000>; 125*3ffeb953SJerome Brunet status = "okay"; 126*3ffeb953SJerome Brunet 127*3ffeb953SJerome Brunet dai-link-0 { 128*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 129*3ffeb953SJerome Brunet }; 130*3ffeb953SJerome Brunet 131*3ffeb953SJerome Brunet dai-link-1 { 132*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 133*3ffeb953SJerome Brunet }; 134*3ffeb953SJerome Brunet 135*3ffeb953SJerome Brunet dai-link-2 { 136*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 137*3ffeb953SJerome Brunet dai-format = "i2s"; 138*3ffeb953SJerome Brunet mclk-fs = <256>; 139*3ffeb953SJerome Brunet 140*3ffeb953SJerome Brunet codec-0 { 141*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 142*3ffeb953SJerome Brunet }; 143*3ffeb953SJerome Brunet }; 144*3ffeb953SJerome Brunet 145*3ffeb953SJerome Brunet dai-link-3 { 146*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 147*3ffeb953SJerome Brunet 148*3ffeb953SJerome Brunet codec-0 { 149*3ffeb953SJerome Brunet sound-dai = <&spdif_dit>; 150*3ffeb953SJerome Brunet }; 151*3ffeb953SJerome Brunet }; 152*3ffeb953SJerome Brunet 153*3ffeb953SJerome Brunet dai-link-4 { 154*3ffeb953SJerome Brunet sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 155*3ffeb953SJerome Brunet 156*3ffeb953SJerome Brunet codec-0 { 157*3ffeb953SJerome Brunet sound-dai = <&hdmi_tx>; 158*3ffeb953SJerome Brunet }; 159*3ffeb953SJerome Brunet }; 160*3ffeb953SJerome Brunet }; 161*3ffeb953SJerome Brunet}; 162*3ffeb953SJerome Brunet 163*3ffeb953SJerome Brunet&aiu { 164*3ffeb953SJerome Brunet status = "okay"; 165*3ffeb953SJerome Brunet pinctrl-0 = <&spdif_out_h_pins>; 166*3ffeb953SJerome Brunet pinctrl-names = "default"; 167*3ffeb953SJerome Brunet 168bb51b535SNeil Armstrong}; 169bb51b535SNeil Armstrong 170b16c71c9SNeil Armstrong&cec_AO { 171b16c71c9SNeil Armstrong status = "okay"; 172b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 173b16c71c9SNeil Armstrong pinctrl-names = "default"; 174b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 175b16c71c9SNeil Armstrong}; 176b16c71c9SNeil Armstrong 177d5463d25SAndreas Färber&cvbs_vdac_port { 178d5463d25SAndreas Färber cvbs_vdac_out: endpoint { 179d5463d25SAndreas Färber remote-endpoint = <&cvbs_connector_in>; 180d5463d25SAndreas Färber }; 181d5463d25SAndreas Färber}; 182d5463d25SAndreas Färber 183d5463d25SAndreas Färberðmac { 184bb51b535SNeil Armstrong status = "okay"; 185d5463d25SAndreas Färber}; 186d5463d25SAndreas Färber 187d5463d25SAndreas Färber&hdmi_tx { 188d5463d25SAndreas Färber status = "okay"; 189d5463d25SAndreas Färber pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 190bb51b535SNeil Armstrong pinctrl-names = "default"; 191e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 192bb51b535SNeil Armstrong}; 193bb51b535SNeil Armstrong 194d5463d25SAndreas Färber&hdmi_tx_tmds_port { 195d5463d25SAndreas Färber hdmi_tx_tmds_out: endpoint { 196d5463d25SAndreas Färber remote-endpoint = <&hdmi_connector_in>; 197d5463d25SAndreas Färber }; 198d5463d25SAndreas Färber}; 199d5463d25SAndreas Färber 200bb51b535SNeil Armstrong&ir { 201bb51b535SNeil Armstrong status = "okay"; 202bb51b535SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 203bb51b535SNeil Armstrong pinctrl-names = "default"; 204bb51b535SNeil Armstrong}; 205bb51b535SNeil Armstrong 206d5463d25SAndreas Färber&pwm_ef { 207d5463d25SAndreas Färber status = "okay"; 208d5463d25SAndreas Färber pinctrl-0 = <&pwm_e_pins>; 209d5463d25SAndreas Färber pinctrl-names = "default"; 210d5463d25SAndreas Färber clocks = <&clkc CLKID_FCLK_DIV4>; 211d5463d25SAndreas Färber clock-names = "clkin0"; 212d5463d25SAndreas Färber}; 213d5463d25SAndreas Färber 21441ed2e0dSMartin Blumenstingl&saradc { 21541ed2e0dSMartin Blumenstingl status = "okay"; 21641ed2e0dSMartin Blumenstingl vref-supply = <&vddio_ao18>; 21741ed2e0dSMartin Blumenstingl}; 21841ed2e0dSMartin Blumenstingl 219bb51b535SNeil Armstrong/* Wireless SDIO Module */ 220bb51b535SNeil Armstrong&sd_emmc_a { 221bb51b535SNeil Armstrong status = "okay"; 222bb51b535SNeil Armstrong pinctrl-0 = <&sdio_pins>; 22367e7607fSJerome Brunet pinctrl-1 = <&sdio_clk_gate_pins>; 22467e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 225bb51b535SNeil Armstrong #address-cells = <1>; 226bb51b535SNeil Armstrong #size-cells = <0>; 227bb51b535SNeil Armstrong 228bb51b535SNeil Armstrong bus-width = <4>; 229bb51b535SNeil Armstrong cap-sd-highspeed; 230adc52bf7SJerome Brunet max-frequency = <50000000>; 231bb51b535SNeil Armstrong 232bb51b535SNeil Armstrong non-removable; 233bb51b535SNeil Armstrong disable-wp; 234bb51b535SNeil Armstrong 23586b8eaa2SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 23686b8eaa2SNeil Armstrong keep-power-in-suspend; 23786b8eaa2SNeil Armstrong 238bb51b535SNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 239bb51b535SNeil Armstrong 240bb51b535SNeil Armstrong vmmc-supply = <&vddao_3v3>; 241bb51b535SNeil Armstrong vqmmc-supply = <&vddio_boot>; 242bb51b535SNeil Armstrong}; 243bb51b535SNeil Armstrong 244bb51b535SNeil Armstrong/* SD card */ 245bb51b535SNeil Armstrong&sd_emmc_b { 246bb51b535SNeil Armstrong status = "okay"; 247bb51b535SNeil Armstrong pinctrl-0 = <&sdcard_pins>; 24867e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 24967e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 250bb51b535SNeil Armstrong 251bb51b535SNeil Armstrong bus-width = <4>; 252bb51b535SNeil Armstrong cap-sd-highspeed; 253adc52bf7SJerome Brunet max-frequency = <50000000>; 254bb51b535SNeil Armstrong disable-wp; 255bb51b535SNeil Armstrong 256f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 257bb51b535SNeil Armstrong 258bb51b535SNeil Armstrong vmmc-supply = <&vddao_3v3>; 259bb51b535SNeil Armstrong vqmmc-supply = <&vddio_boot>; 260bb51b535SNeil Armstrong}; 261bb51b535SNeil Armstrong 262bb51b535SNeil Armstrong/* eMMC */ 263bb51b535SNeil Armstrong&sd_emmc_c { 264bb51b535SNeil Armstrong status = "okay"; 265ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 26667e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 26767e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 268bb51b535SNeil Armstrong 269bb51b535SNeil Armstrong bus-width = <8>; 270bb51b535SNeil Armstrong cap-mmc-highspeed; 271bb51b535SNeil Armstrong max-frequency = <200000000>; 272bb51b535SNeil Armstrong non-removable; 273bb51b535SNeil Armstrong disable-wp; 274bb51b535SNeil Armstrong mmc-ddr-1_8v; 275bb51b535SNeil Armstrong mmc-hs200-1_8v; 276bb51b535SNeil Armstrong 277bb51b535SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 278bb51b535SNeil Armstrong vmmc-supply = <&vcc_3v3>; 279bb51b535SNeil Armstrong vqmmc-supply = <&vddio_boot>; 280bb51b535SNeil Armstrong}; 281bb51b535SNeil Armstrong 282d5463d25SAndreas Färber/* This UART is brought out to the DB9 connector */ 283d5463d25SAndreas Färber&uart_AO { 284bb51b535SNeil Armstrong status = "okay"; 285d5463d25SAndreas Färber pinctrl-0 = <&uart_ao_a_pins>; 286bb51b535SNeil Armstrong pinctrl-names = "default"; 2876939db7eSNeil Armstrong}; 288972cd12aSMartin Blumenstingl 2892f9139c2SMartin Blumenstingl&usb { 290972cd12aSMartin Blumenstingl status = "okay"; 2912f9139c2SMartin Blumenstingl dr_mode = "otg"; 292972cd12aSMartin Blumenstingl}; 293