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 120 dai-link-0 { 121 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 122 }; 123 124 dai-link-1 { 125 sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 126 }; 127 128 dai-link-2 { 129 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 130 dai-format = "i2s"; 131 mclk-fs = <256>; 132 133 codec-0 { 134 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 135 }; 136 }; 137 138 dai-link-3 { 139 sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 140 141 codec-0 { 142 sound-dai = <&spdif_dit>; 143 }; 144 }; 145 146 dai-link-4 { 147 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 148 149 codec-0 { 150 sound-dai = <&hdmi_tx>; 151 }; 152 }; 153 }; 154}; 155 156&aiu { 157 status = "okay"; 158 pinctrl-0 = <&spdif_out_y_pins>; 159 pinctrl-names = "default"; 160}; 161 162&cec_AO { 163 status = "okay"; 164 pinctrl-0 = <&ao_cec_pins>; 165 pinctrl-names = "default"; 166 hdmi-phandle = <&hdmi_tx>; 167}; 168 169ðmac { 170 status = "okay"; 171 pinctrl-0 = <ð_rgmii_pins>; 172 pinctrl-names = "default"; 173 174 phy-handle = <ð_phy0>; 175 phy-mode = "rgmii"; 176 177 amlogic,tx-delay-ns = <2>; 178 179 mdio { 180 compatible = "snps,dwmac-mdio"; 181 #address-cells = <1>; 182 #size-cells = <0>; 183 184 eth_phy0: ethernet-phy@0 { 185 /* Realtek RTL8211F (0x001cc916) */ 186 reg = <0>; 187 188 reset-assert-us = <10000>; 189 reset-deassert-us = <80000>; 190 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 191 192 interrupt-parent = <&gpio_intc>; 193 /* MAC_INTR on GPIOZ_15 */ 194 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 195 }; 196 }; 197}; 198 199&hdmi_tx { 200 status = "okay"; 201 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 202 pinctrl-names = "default"; 203}; 204 205&hdmi_tx_tmds_port { 206 hdmi_tx_tmds_out: endpoint { 207 remote-endpoint = <&hdmi_connector_in>; 208 }; 209}; 210 211&ir { 212 status = "okay"; 213 pinctrl-0 = <&remote_input_ao_pins>; 214 pinctrl-names = "default"; 215 linux,rc-map-name = "rc-vega-s9x"; 216}; 217 218&pwm_ef { 219 status = "okay"; 220 pinctrl-0 = <&pwm_e_pins>; 221 pinctrl-names = "default"; 222 clocks = <&clkc CLKID_FCLK_DIV4>; 223 clock-names = "clkin0"; 224}; 225 226&saradc { 227 status = "okay"; 228 vref-supply = <&vddio_ao18>; 229}; 230 231/* Wireless SDIO Module */ 232&sd_emmc_a { 233 status = "okay"; 234 pinctrl-0 = <&sdio_pins>; 235 pinctrl-1 = <&sdio_clk_gate_pins>; 236 pinctrl-names = "default", "clk-gate"; 237 #address-cells = <1>; 238 #size-cells = <0>; 239 240 bus-width = <4>; 241 cap-sd-highspeed; 242 max-frequency = <50000000>; 243 244 non-removable; 245 disable-wp; 246 247 /* WiFi firmware requires power to be kept while in suspend */ 248 keep-power-in-suspend; 249 250 mmc-pwrseq = <&sdio_pwrseq>; 251 252 vmmc-supply = <&vddao_3v3>; 253 vqmmc-supply = <&vddio_boot>; 254 255 brcmf: wifi@1 { 256 reg = <1>; 257 compatible = "brcm,bcm4329-fmac"; 258 }; 259}; 260 261/* SD card */ 262&sd_emmc_b { 263 status = "okay"; 264 pinctrl-0 = <&sdcard_pins>; 265 pinctrl-1 = <&sdcard_clk_gate_pins>; 266 pinctrl-names = "default", "clk-gate"; 267 268 bus-width = <4>; 269 cap-sd-highspeed; 270 max-frequency = <50000000>; 271 disable-wp; 272 273 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 274 275 vmmc-supply = <&vddao_3v3>; 276 vqmmc-supply = <&vcc_3v3>; 277}; 278 279/* eMMC */ 280&sd_emmc_c { 281 status = "okay"; 282 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 283 pinctrl-1 = <&emmc_clk_gate_pins>; 284 pinctrl-names = "default", "clk-gate"; 285 286 bus-width = <8>; 287 cap-mmc-highspeed; 288 max-frequency = <200000000>; 289 non-removable; 290 disable-wp; 291 mmc-ddr-1_8v; 292 mmc-hs200-1_8v; 293 294 mmc-pwrseq = <&emmc_pwrseq>; 295 vmmc-supply = <&vcc_3v3>; 296 vqmmc-supply = <&vddio_boot>; 297}; 298 299/* This is connected to the Bluetooth module: */ 300&uart_A { 301 status = "okay"; 302 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 303 pinctrl-names = "default"; 304 305 bluetooth { 306 compatible = "brcm,bcm43438-bt"; 307 shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; 308 max-speed = <2000000>; 309 clocks = <&wifi32k>; 310 clock-names = "lpo"; 311 }; 312}; 313 314/* This UART is brought out to the DB9 connector */ 315&uart_AO { 316 status = "okay"; 317 pinctrl-0 = <&uart_ao_a_pins>; 318 pinctrl-names = "default"; 319}; 320 321&usb0_phy { 322 status = "okay"; 323 phy-supply = <&usb_pwr>; 324}; 325 326&usb1_phy { 327 status = "okay"; 328}; 329 330&usb0 { 331 status = "okay"; 332}; 333 334&usb1 { 335 status = "okay"; 336}; 337