1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2016 Andreas Färber 4 */ 5 6#include "meson-gxbb.dtsi" 7#include <dt-bindings/sound/meson-aiu.h> 8 9/ { 10 compatible = "tronsmart,vega-s95", "amlogic,meson-gxbb"; 11 12 aliases { 13 serial0 = &uart_AO; 14 ethernet0 = ðmac; 15 }; 16 17 chosen { 18 stdout-path = "serial0:115200n8"; 19 }; 20 21 spdif_dit: audio-codec-0 { 22 #sound-dai-cells = <0>; 23 compatible = "linux,spdif-dit"; 24 status = "okay"; 25 sound-name-prefix = "DIT"; 26 }; 27 28 leds { 29 compatible = "gpio-leds"; 30 31 led-blue { 32 label = "vega-s95:blue:on"; 33 gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 34 default-state = "on"; 35 panic-indicator; 36 }; 37 }; 38 39 usb_pwr: regulator-usb-pwrs { 40 compatible = "regulator-fixed"; 41 42 regulator-name = "USB_PWR"; 43 44 regulator-min-microvolt = <5000000>; 45 regulator-max-microvolt = <5000000>; 46 47 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 48 enable-active-high; 49 }; 50 51 vddio_boot: regulator-vddio_boot { 52 compatible = "regulator-fixed"; 53 regulator-name = "VDDIO_BOOT"; 54 regulator-min-microvolt = <1800000>; 55 regulator-max-microvolt = <1800000>; 56 }; 57 58 vddao_3v3: regulator-vddao_3v3 { 59 compatible = "regulator-fixed"; 60 regulator-name = "VDDAO_3V3"; 61 regulator-min-microvolt = <3300000>; 62 regulator-max-microvolt = <3300000>; 63 }; 64 65 vddio_ao18: regulator-vddio_ao18 { 66 compatible = "regulator-fixed"; 67 regulator-name = "VDDIO_AO18"; 68 regulator-min-microvolt = <1800000>; 69 regulator-max-microvolt = <1800000>; 70 }; 71 72 vcc_3v3: regulator-vcc_3v3 { 73 compatible = "regulator-fixed"; 74 regulator-name = "VCC_3V3"; 75 regulator-min-microvolt = <3300000>; 76 regulator-max-microvolt = <3300000>; 77 }; 78 79 emmc_pwrseq: emmc-pwrseq { 80 compatible = "mmc-pwrseq-emmc"; 81 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 82 }; 83 84 wifi32k: wifi32k { 85 compatible = "pwm-clock"; 86 #clock-cells = <0>; 87 clock-frequency = <32768>; 88 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 89 }; 90 91 hdmi-connector { 92 compatible = "hdmi-connector"; 93 type = "a"; 94 95 port { 96 hdmi_connector_in: endpoint { 97 remote-endpoint = <&hdmi_tx_tmds_out>; 98 }; 99 }; 100 }; 101 102 sdio_pwrseq: sdio-pwrseq { 103 compatible = "mmc-pwrseq-simple"; 104 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 105 clocks = <&wifi32k>; 106 clock-names = "ext_clock"; 107 }; 108 109 sound { 110 compatible = "amlogic,gx-sound-card"; 111 model = "VEGA-S95"; 112 assigned-clocks = <&clkc CLKID_MPLL0>, 113 <&clkc CLKID_MPLL1>, 114 <&clkc CLKID_MPLL2>; 115 assigned-clock-parents = <0>, <0>, <0>; 116 assigned-clock-rates = <294912000>, 117 <270950400>, 118 <393216000>; 119 status = "okay"; 120 121 dai-link-0 { 122 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 123 }; 124 125 dai-link-1 { 126 sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 127 }; 128 129 dai-link-2 { 130 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 131 dai-format = "i2s"; 132 mclk-fs = <256>; 133 134 codec-0 { 135 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 136 }; 137 }; 138 139 dai-link-3 { 140 sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 141 142 codec-0 { 143 sound-dai = <&spdif_dit>; 144 }; 145 }; 146 147 dai-link-4 { 148 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 149 150 codec-0 { 151 sound-dai = <&hdmi_tx>; 152 }; 153 }; 154 }; 155}; 156 157&aiu { 158 status = "okay"; 159 pinctrl-0 = <&spdif_out_y_pins>; 160 pinctrl-names = "default"; 161}; 162 163&cec_AO { 164 status = "okay"; 165 pinctrl-0 = <&ao_cec_pins>; 166 pinctrl-names = "default"; 167 hdmi-phandle = <&hdmi_tx>; 168}; 169 170ðmac { 171 status = "okay"; 172 pinctrl-0 = <ð_rgmii_pins>; 173 pinctrl-names = "default"; 174 175 phy-handle = <ð_phy0>; 176 phy-mode = "rgmii"; 177 178 amlogic,tx-delay-ns = <2>; 179 180 mdio { 181 compatible = "snps,dwmac-mdio"; 182 #address-cells = <1>; 183 #size-cells = <0>; 184 185 eth_phy0: ethernet-phy@0 { 186 /* Realtek RTL8211F (0x001cc916) */ 187 reg = <0>; 188 189 reset-assert-us = <10000>; 190 reset-deassert-us = <80000>; 191 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 192 193 interrupt-parent = <&gpio_intc>; 194 /* MAC_INTR on GPIOZ_15 */ 195 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 196 }; 197 }; 198}; 199 200&hdmi_tx { 201 status = "okay"; 202 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 203 pinctrl-names = "default"; 204}; 205 206&hdmi_tx_tmds_port { 207 hdmi_tx_tmds_out: endpoint { 208 remote-endpoint = <&hdmi_connector_in>; 209 }; 210}; 211 212&ir { 213 status = "okay"; 214 pinctrl-0 = <&remote_input_ao_pins>; 215 pinctrl-names = "default"; 216 linux,rc-map-name = "rc-vega-s9x"; 217}; 218 219&pwm_ef { 220 status = "okay"; 221 pinctrl-0 = <&pwm_e_pins>; 222 pinctrl-names = "default"; 223 clocks = <&clkc CLKID_FCLK_DIV4>; 224 clock-names = "clkin0"; 225}; 226 227&saradc { 228 status = "okay"; 229 vref-supply = <&vddio_ao18>; 230}; 231 232/* Wireless SDIO Module */ 233&sd_emmc_a { 234 status = "okay"; 235 pinctrl-0 = <&sdio_pins>; 236 pinctrl-1 = <&sdio_clk_gate_pins>; 237 pinctrl-names = "default", "clk-gate"; 238 #address-cells = <1>; 239 #size-cells = <0>; 240 241 bus-width = <4>; 242 cap-sd-highspeed; 243 max-frequency = <50000000>; 244 245 non-removable; 246 disable-wp; 247 248 /* WiFi firmware requires power to be kept while in suspend */ 249 keep-power-in-suspend; 250 251 mmc-pwrseq = <&sdio_pwrseq>; 252 253 vmmc-supply = <&vddao_3v3>; 254 vqmmc-supply = <&vddio_boot>; 255 256 brcmf: wifi@1 { 257 reg = <1>; 258 compatible = "brcm,bcm4329-fmac"; 259 }; 260}; 261 262/* SD card */ 263&sd_emmc_b { 264 status = "okay"; 265 pinctrl-0 = <&sdcard_pins>; 266 pinctrl-1 = <&sdcard_clk_gate_pins>; 267 pinctrl-names = "default", "clk-gate"; 268 269 bus-width = <4>; 270 cap-sd-highspeed; 271 max-frequency = <50000000>; 272 disable-wp; 273 274 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 275 276 vmmc-supply = <&vddao_3v3>; 277 vqmmc-supply = <&vcc_3v3>; 278}; 279 280/* eMMC */ 281&sd_emmc_c { 282 status = "okay"; 283 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 284 pinctrl-1 = <&emmc_clk_gate_pins>; 285 pinctrl-names = "default", "clk-gate"; 286 287 bus-width = <8>; 288 cap-mmc-highspeed; 289 max-frequency = <200000000>; 290 non-removable; 291 disable-wp; 292 mmc-ddr-1_8v; 293 mmc-hs200-1_8v; 294 295 mmc-pwrseq = <&emmc_pwrseq>; 296 vmmc-supply = <&vcc_3v3>; 297 vqmmc-supply = <&vddio_boot>; 298}; 299 300/* This is connected to the Bluetooth module: */ 301&uart_A { 302 status = "okay"; 303 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 304 pinctrl-names = "default"; 305 306 bluetooth { 307 compatible = "brcm,bcm43438-bt"; 308 shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; 309 max-speed = <2000000>; 310 clocks = <&wifi32k>; 311 clock-names = "lpo"; 312 }; 313}; 314 315/* This UART is brought out to the DB9 connector */ 316&uart_AO { 317 status = "okay"; 318 pinctrl-0 = <&uart_ao_a_pins>; 319 pinctrl-names = "default"; 320}; 321 322&usb0_phy { 323 status = "okay"; 324 phy-supply = <&usb_pwr>; 325}; 326 327&usb1_phy { 328 status = "okay"; 329}; 330 331&usb0 { 332 status = "okay"; 333}; 334 335&usb1 { 336 status = "okay"; 337}; 338