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