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