1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2016 Endless Computers, Inc. 4 * Author: Carlo Caione <carlo@endlessm.com> 5 */ 6 7/* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either 8 * the pin-compatible S912 (GXM) or S905D (GXL) SoCs. 9 */ 10 11#include <dt-bindings/sound/meson-aiu.h> 12 13/ { 14 aliases { 15 serial0 = &uart_AO; 16 ethernet0 = ðmac; 17 }; 18 19 dio2133: analog-amplifier { 20 compatible = "simple-audio-amplifier"; 21 sound-name-prefix = "AU2"; 22 VCC-supply = <&hdmi_5v>; 23 enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 24 }; 25 26 spdif_dit: audio-codec-0 { 27 #sound-dai-cells = <0>; 28 compatible = "linux,spdif-dit"; 29 sound-name-prefix = "DIT"; 30 }; 31 32 chosen { 33 stdout-path = "serial0:115200n8"; 34 }; 35 36 memory@0 { 37 device_type = "memory"; 38 reg = <0x0 0x0 0x0 0x80000000>; 39 }; 40 41 hdmi_5v: regulator-hdmi-5v { 42 compatible = "regulator-fixed"; 43 44 regulator-name = "HDMI_5V"; 45 regulator-min-microvolt = <5000000>; 46 regulator-max-microvolt = <5000000>; 47 48 gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; 49 enable-active-high; 50 regulator-always-on; 51 }; 52 53 vddio_ao18: regulator-vddio-ao18 { 54 compatible = "regulator-fixed"; 55 regulator-name = "VDDIO_AO18"; 56 regulator-min-microvolt = <1800000>; 57 regulator-max-microvolt = <1800000>; 58 }; 59 60 vddio_boot: regulator-vddio-boot { 61 compatible = "regulator-fixed"; 62 regulator-name = "VDDIO_BOOT"; 63 regulator-min-microvolt = <1800000>; 64 regulator-max-microvolt = <1800000>; 65 }; 66 67 vddao_3v3: regulator-vddao-3v3 { 68 compatible = "regulator-fixed"; 69 regulator-name = "VDDAO_3V3"; 70 regulator-min-microvolt = <3300000>; 71 regulator-max-microvolt = <3300000>; 72 }; 73 74 vcc_3v3: regulator-vcc-3v3 { 75 compatible = "regulator-fixed"; 76 regulator-name = "VCC_3V3"; 77 regulator-min-microvolt = <3300000>; 78 regulator-max-microvolt = <3300000>; 79 }; 80 81 emmc_pwrseq: emmc-pwrseq { 82 compatible = "mmc-pwrseq-emmc"; 83 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 84 }; 85 86 wifi32k: wifi32k { 87 compatible = "pwm-clock"; 88 #clock-cells = <0>; 89 clock-frequency = <32768>; 90 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 91 }; 92 93 sdio_pwrseq: sdio-pwrseq { 94 compatible = "mmc-pwrseq-simple"; 95 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 96 clocks = <&wifi32k>; 97 clock-names = "ext_clock"; 98 }; 99 100 cvbs-connector { 101 compatible = "composite-video-connector"; 102 103 port { 104 cvbs_connector_in: endpoint { 105 remote-endpoint = <&cvbs_vdac_out>; 106 }; 107 }; 108 }; 109 110 hdmi-connector { 111 compatible = "hdmi-connector"; 112 type = "a"; 113 114 port { 115 hdmi_connector_in: endpoint { 116 remote-endpoint = <&hdmi_tx_tmds_out>; 117 }; 118 }; 119 }; 120 121 sound { 122 compatible = "amlogic,gx-sound-card"; 123 model = "P230-Q200"; 124 audio-aux-devs = <&dio2133>; 125 audio-widgets = "Line", "Lineout"; 126 audio-routing = "AU2 INL", "ACODEC LOLP", 127 "AU2 INR", "ACODEC LORP", 128 "AU2 INL", "ACODEC LOLN", 129 "AU2 INR", "ACODEC LORN", 130 "Lineout", "AU2 OUTL", 131 "Lineout", "AU2 OUTR"; 132 assigned-clocks = <&clkc CLKID_MPLL0>, 133 <&clkc CLKID_MPLL1>, 134 <&clkc CLKID_MPLL2>; 135 assigned-clock-parents = <0>, <0>, <0>; 136 assigned-clock-rates = <294912000>, 137 <270950400>, 138 <393216000>; 139 dai-link-0 { 140 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 141 }; 142 143 dai-link-1 { 144 sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 145 }; 146 147 dai-link-2 { 148 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 149 dai-format = "i2s"; 150 mclk-fs = <256>; 151 152 codec-0 { 153 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 154 }; 155 156 codec-1 { 157 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 158 }; 159 }; 160 161 dai-link-3 { 162 sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 163 164 codec-0 { 165 sound-dai = <&spdif_dit>; 166 }; 167 }; 168 169 dai-link-4 { 170 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 171 172 codec-0 { 173 sound-dai = <&hdmi_tx>; 174 }; 175 }; 176 177 dai-link-5 { 178 sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 179 180 codec-0 { 181 sound-dai = <&acodec>; 182 }; 183 }; 184 }; 185}; 186 187&acodec { 188 AVDD-supply = <&vddio_ao18>; 189 status = "okay"; 190}; 191 192&aiu { 193 status = "okay"; 194 pinctrl-0 = <&spdif_out_h_pins>; 195 pinctrl-names = "default"; 196 197}; 198 199&cec_AO { 200 status = "okay"; 201 pinctrl-0 = <&ao_cec_pins>; 202 pinctrl-names = "default"; 203 hdmi-phandle = <&hdmi_tx>; 204}; 205 206&cvbs_vdac_port { 207 cvbs_vdac_out: endpoint { 208 remote-endpoint = <&cvbs_connector_in>; 209 }; 210}; 211 212ðmac { 213 status = "okay"; 214}; 215 216&hdmi_tx { 217 status = "okay"; 218 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 219 pinctrl-names = "default"; 220 hdmi-supply = <&hdmi_5v>; 221}; 222 223&hdmi_tx_tmds_port { 224 hdmi_tx_tmds_out: endpoint { 225 remote-endpoint = <&hdmi_connector_in>; 226 }; 227}; 228 229&ir { 230 status = "okay"; 231 pinctrl-0 = <&remote_input_ao_pins>; 232 pinctrl-names = "default"; 233}; 234 235&pwm_ef { 236 status = "okay"; 237 pinctrl-0 = <&pwm_e_pins>; 238 pinctrl-names = "default"; 239 clocks = <&clkc CLKID_FCLK_DIV4>; 240 clock-names = "clkin0"; 241}; 242 243&saradc { 244 status = "okay"; 245 vref-supply = <&vddio_ao18>; 246}; 247 248/* Wireless SDIO Module */ 249&sd_emmc_a { 250 status = "okay"; 251 pinctrl-0 = <&sdio_pins>; 252 pinctrl-1 = <&sdio_clk_gate_pins>; 253 pinctrl-names = "default", "clk-gate"; 254 #address-cells = <1>; 255 #size-cells = <0>; 256 257 bus-width = <4>; 258 cap-sd-highspeed; 259 max-frequency = <50000000>; 260 261 non-removable; 262 disable-wp; 263 264 /* WiFi firmware requires power to be kept while in suspend */ 265 keep-power-in-suspend; 266 267 mmc-pwrseq = <&sdio_pwrseq>; 268 269 vmmc-supply = <&vddao_3v3>; 270 vqmmc-supply = <&vddio_boot>; 271}; 272 273/* SD card */ 274&sd_emmc_b { 275 status = "okay"; 276 pinctrl-0 = <&sdcard_pins>; 277 pinctrl-1 = <&sdcard_clk_gate_pins>; 278 pinctrl-names = "default", "clk-gate"; 279 280 bus-width = <4>; 281 cap-sd-highspeed; 282 max-frequency = <50000000>; 283 disable-wp; 284 285 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 286 287 vmmc-supply = <&vddao_3v3>; 288 vqmmc-supply = <&vddio_boot>; 289}; 290 291/* eMMC */ 292&sd_emmc_c { 293 status = "okay"; 294 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 295 pinctrl-1 = <&emmc_clk_gate_pins>; 296 pinctrl-names = "default", "clk-gate"; 297 298 bus-width = <8>; 299 cap-mmc-highspeed; 300 max-frequency = <200000000>; 301 non-removable; 302 disable-wp; 303 mmc-ddr-1_8v; 304 mmc-hs200-1_8v; 305 306 mmc-pwrseq = <&emmc_pwrseq>; 307 vmmc-supply = <&vcc_3v3>; 308 vqmmc-supply = <&vddio_boot>; 309}; 310 311/* This UART is brought out to the DB9 connector */ 312&uart_AO { 313 status = "okay"; 314 pinctrl-0 = <&uart_ao_a_pins>; 315 pinctrl-names = "default"; 316}; 317 318&usb { 319 status = "okay"; 320 dr_mode = "otg"; 321}; 322