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