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 clocks = <&clkc CLKID_MPLL0>, 132 <&clkc CLKID_MPLL1>, 133 <&clkc CLKID_MPLL2>; 134 135 assigned-clocks = <&clkc CLKID_MPLL0>, 136 <&clkc CLKID_MPLL1>, 137 <&clkc CLKID_MPLL2>; 138 assigned-clock-parents = <0>, <0>, <0>; 139 assigned-clock-rates = <294912000>, 140 <270950400>, 141 <393216000>; 142 143 dai-link-0 { 144 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 145 }; 146 147 dai-link-1 { 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-2 { 162 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 163 164 codec-0 { 165 sound-dai = <&hdmi_tx>; 166 }; 167 }; 168 169 dai-link-3 { 170 sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 171 172 codec-0 { 173 sound-dai = <&acodec>; 174 }; 175 }; 176 }; 177}; 178 179&acodec { 180 AVDD-supply = <&vddio_ao18>; 181 status = "okay"; 182}; 183 184&aiu { 185 status = "okay"; 186}; 187 188&cec_AO { 189 status = "okay"; 190 pinctrl-0 = <&ao_cec_pins>; 191 pinctrl-names = "default"; 192 hdmi-phandle = <&hdmi_tx>; 193}; 194 195&cvbs_vdac_port { 196 cvbs_vdac_out: endpoint { 197 remote-endpoint = <&cvbs_connector_in>; 198 }; 199}; 200 201ðmac { 202 status = "okay"; 203}; 204 205&internal_phy { 206 pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 207 pinctrl-names = "default"; 208}; 209 210&ir { 211 status = "okay"; 212 pinctrl-0 = <&remote_input_ao_pins>; 213 pinctrl-names = "default"; 214}; 215 216&hdmi_tx { 217 status = "okay"; 218 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 219 pinctrl-names = "default"; 220 hdmi-supply = <&vcc_5v>; 221}; 222 223&hdmi_tx_tmds_port { 224 hdmi_tx_tmds_out: endpoint { 225 remote-endpoint = <&hdmi_connector_in>; 226 }; 227}; 228 229&saradc { 230 status = "okay"; 231 vref-supply = <&vddio_ao18>; 232}; 233 234/* Wireless SDIO Module */ 235&sd_emmc_a { 236 status = "okay"; 237 pinctrl-0 = <&sdio_pins>; 238 pinctrl-1 = <&sdio_clk_gate_pins>; 239 pinctrl-names = "default", "clk-gate"; 240 #address-cells = <1>; 241 #size-cells = <0>; 242 243 bus-width = <4>; 244 cap-sd-highspeed; 245 max-frequency = <50000000>; 246 247 non-removable; 248 disable-wp; 249 250 /* WiFi firmware requires power to be kept while in suspend */ 251 keep-power-in-suspend; 252 253 mmc-pwrseq = <&sdio_pwrseq>; 254 255 vmmc-supply = <&vddao_3v3>; 256 vqmmc-supply = <&vddio_boot>; 257}; 258 259/* eMMC */ 260&sd_emmc_c { 261 status = "okay"; 262 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 263 pinctrl-1 = <&emmc_clk_gate_pins>; 264 pinctrl-names = "default", "clk-gate"; 265 266 bus-width = <8>; 267 cap-mmc-highspeed; 268 max-frequency = <200000000>; 269 non-removable; 270 disable-wp; 271 mmc-ddr-1_8v; 272 mmc-hs200-1_8v; 273 274 mmc-pwrseq = <&emmc_pwrseq>; 275 vmmc-supply = <&vcc_3v3>; 276 vqmmc-supply = <&vddio_boot>; 277}; 278 279&pwm_ef { 280 status = "okay"; 281 pinctrl-0 = <&pwm_e_pins>; 282 pinctrl-names = "default"; 283 clocks = <&clkc CLKID_FCLK_DIV4>; 284 clock-names = "clkin0"; 285}; 286 287/* This is connected to the Bluetooth module: */ 288&uart_A { 289 status = "okay"; 290 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 291 pinctrl-names = "default"; 292 uart-has-rtscts; 293}; 294 295&uart_AO { 296 status = "okay"; 297 pinctrl-0 = <&uart_ao_a_pins>; 298 pinctrl-names = "default"; 299}; 300 301&usb { 302 status = "okay"; 303 dr_mode = "host"; 304}; 305 306&usb2_phy0 { 307 phy-supply = <&vcc_5v>; 308}; 309