1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cc733bc9SAndreas Färber/* 3cc733bc9SAndreas Färber * Copyright (c) 2016 Andreas Färber 4cc733bc9SAndreas Färber */ 5cc733bc9SAndreas Färber 6cc733bc9SAndreas Färber#include "meson-gxbb.dtsi" 7*c6cf488eSChristian Hewitt#include <dt-bindings/sound/meson-aiu.h> 8cc733bc9SAndreas Färber 9cc733bc9SAndreas Färber/ { 10cc733bc9SAndreas Färber compatible = "tronsmart,vega-s95", "amlogic,meson-gxbb"; 11cc733bc9SAndreas Färber 12962f271eSKevin Hilman aliases { 13962f271eSKevin Hilman serial0 = &uart_AO; 14059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 15962f271eSKevin Hilman }; 16962f271eSKevin Hilman 17cc733bc9SAndreas Färber chosen { 18cc733bc9SAndreas Färber stdout-path = "serial0:115200n8"; 19cc733bc9SAndreas Färber }; 20c763eb82SMartin Blumenstingl 21*c6cf488eSChristian Hewitt spdif_dit: audio-codec-0 { 22*c6cf488eSChristian Hewitt #sound-dai-cells = <0>; 23*c6cf488eSChristian Hewitt compatible = "linux,spdif-dit"; 24*c6cf488eSChristian Hewitt status = "okay"; 25*c6cf488eSChristian Hewitt sound-name-prefix = "DIT"; 26*c6cf488eSChristian Hewitt }; 27*c6cf488eSChristian Hewitt 282fbbc4bfSAndreas Färber leds { 292fbbc4bfSAndreas Färber compatible = "gpio-leds"; 302fbbc4bfSAndreas Färber 3108dc0e5dSNeil Armstrong led-blue { 322fbbc4bfSAndreas Färber label = "vega-s95:blue:on"; 332fbbc4bfSAndreas Färber gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 342fbbc4bfSAndreas Färber default-state = "on"; 352fbbc4bfSAndreas Färber panic-indicator; 362fbbc4bfSAndreas Färber }; 372fbbc4bfSAndreas Färber }; 382fbbc4bfSAndreas Färber 3941112431SNeil Armstrong usb_pwr: regulator-usb-pwrs { 40c763eb82SMartin Blumenstingl compatible = "regulator-fixed"; 41c763eb82SMartin Blumenstingl 4241112431SNeil Armstrong regulator-name = "USB_PWR"; 43c763eb82SMartin Blumenstingl 44c763eb82SMartin Blumenstingl regulator-min-microvolt = <5000000>; 45c763eb82SMartin Blumenstingl regulator-max-microvolt = <5000000>; 46c763eb82SMartin Blumenstingl 47c763eb82SMartin Blumenstingl gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 48c763eb82SMartin Blumenstingl enable-active-high; 49c763eb82SMartin Blumenstingl }; 50c763eb82SMartin Blumenstingl 5141112431SNeil Armstrong vddio_boot: regulator-vddio_boot { 5241112431SNeil Armstrong compatible = "regulator-fixed"; 5341112431SNeil Armstrong regulator-name = "VDDIO_BOOT"; 5441112431SNeil Armstrong regulator-min-microvolt = <1800000>; 5541112431SNeil Armstrong regulator-max-microvolt = <1800000>; 5641112431SNeil Armstrong }; 5741112431SNeil Armstrong 5841112431SNeil Armstrong vddao_3v3: regulator-vddao_3v3 { 5941112431SNeil Armstrong compatible = "regulator-fixed"; 6041112431SNeil Armstrong regulator-name = "VDDAO_3V3"; 6141112431SNeil Armstrong regulator-min-microvolt = <3300000>; 6241112431SNeil Armstrong regulator-max-microvolt = <3300000>; 6341112431SNeil Armstrong }; 6441112431SNeil Armstrong 65f1ef6262SNeil Armstrong vddio_ao18: regulator-vddio_ao18 { 66f1ef6262SNeil Armstrong compatible = "regulator-fixed"; 67f1ef6262SNeil Armstrong regulator-name = "VDDIO_AO18"; 68f1ef6262SNeil Armstrong regulator-min-microvolt = <1800000>; 69f1ef6262SNeil Armstrong regulator-max-microvolt = <1800000>; 70f1ef6262SNeil Armstrong }; 71f1ef6262SNeil Armstrong 72ab5b24fdSMartin Blumenstingl vcc_3v3: regulator-vcc_3v3 { 73ab5b24fdSMartin Blumenstingl compatible = "regulator-fixed"; 74ab5b24fdSMartin Blumenstingl regulator-name = "VCC_3V3"; 75ab5b24fdSMartin Blumenstingl regulator-min-microvolt = <3300000>; 76ab5b24fdSMartin Blumenstingl regulator-max-microvolt = <3300000>; 77ab5b24fdSMartin Blumenstingl }; 78ab5b24fdSMartin Blumenstingl 79ab5b24fdSMartin Blumenstingl emmc_pwrseq: emmc-pwrseq { 80ab5b24fdSMartin Blumenstingl compatible = "mmc-pwrseq-emmc"; 81ab5b24fdSMartin Blumenstingl reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 82ab5b24fdSMartin Blumenstingl }; 83ab5b24fdSMartin Blumenstingl 84ab5b24fdSMartin Blumenstingl wifi32k: wifi32k { 85ab5b24fdSMartin Blumenstingl compatible = "pwm-clock"; 86ab5b24fdSMartin Blumenstingl #clock-cells = <0>; 87ab5b24fdSMartin Blumenstingl clock-frequency = <32768>; 88ab5b24fdSMartin Blumenstingl pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 89ab5b24fdSMartin Blumenstingl }; 90ab5b24fdSMartin Blumenstingl 91954b67dfSNeil Armstrong hdmi-connector { 92954b67dfSNeil Armstrong compatible = "hdmi-connector"; 93954b67dfSNeil Armstrong type = "a"; 94954b67dfSNeil Armstrong 95954b67dfSNeil Armstrong port { 96954b67dfSNeil Armstrong hdmi_connector_in: endpoint { 97954b67dfSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 98954b67dfSNeil Armstrong }; 99954b67dfSNeil Armstrong }; 100954b67dfSNeil Armstrong }; 101954b67dfSNeil Armstrong 102ab5b24fdSMartin Blumenstingl sdio_pwrseq: sdio-pwrseq { 103ab5b24fdSMartin Blumenstingl compatible = "mmc-pwrseq-simple"; 104b07a11dbSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 105ab5b24fdSMartin Blumenstingl clocks = <&wifi32k>; 106ab5b24fdSMartin Blumenstingl clock-names = "ext_clock"; 107ab5b24fdSMartin Blumenstingl }; 108*c6cf488eSChristian Hewitt 109*c6cf488eSChristian Hewitt sound { 110*c6cf488eSChristian Hewitt compatible = "amlogic,gx-sound-card"; 111*c6cf488eSChristian Hewitt model = "VEGA-S95"; 112*c6cf488eSChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 113*c6cf488eSChristian Hewitt <&clkc CLKID_MPLL1>, 114*c6cf488eSChristian Hewitt <&clkc CLKID_MPLL2>; 115*c6cf488eSChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 116*c6cf488eSChristian Hewitt assigned-clock-rates = <294912000>, 117*c6cf488eSChristian Hewitt <270950400>, 118*c6cf488eSChristian Hewitt <393216000>; 119*c6cf488eSChristian Hewitt 120*c6cf488eSChristian Hewitt dai-link-0 { 121*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 122*c6cf488eSChristian Hewitt }; 123*c6cf488eSChristian Hewitt 124*c6cf488eSChristian Hewitt dai-link-1 { 125*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 126*c6cf488eSChristian Hewitt }; 127*c6cf488eSChristian Hewitt 128*c6cf488eSChristian Hewitt dai-link-2 { 129*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 130*c6cf488eSChristian Hewitt dai-format = "i2s"; 131*c6cf488eSChristian Hewitt mclk-fs = <256>; 132*c6cf488eSChristian Hewitt 133*c6cf488eSChristian Hewitt codec-0 { 134*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 135*c6cf488eSChristian Hewitt }; 136*c6cf488eSChristian Hewitt }; 137*c6cf488eSChristian Hewitt 138*c6cf488eSChristian Hewitt dai-link-3 { 139*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 140*c6cf488eSChristian Hewitt 141*c6cf488eSChristian Hewitt codec-0 { 142*c6cf488eSChristian Hewitt sound-dai = <&spdif_dit>; 143*c6cf488eSChristian Hewitt }; 144*c6cf488eSChristian Hewitt }; 145*c6cf488eSChristian Hewitt 146*c6cf488eSChristian Hewitt dai-link-4 { 147*c6cf488eSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 148*c6cf488eSChristian Hewitt 149*c6cf488eSChristian Hewitt codec-0 { 150*c6cf488eSChristian Hewitt sound-dai = <&hdmi_tx>; 151*c6cf488eSChristian Hewitt }; 152*c6cf488eSChristian Hewitt }; 153*c6cf488eSChristian Hewitt }; 154*c6cf488eSChristian Hewitt}; 155*c6cf488eSChristian Hewitt 156*c6cf488eSChristian Hewitt&aiu { 157*c6cf488eSChristian Hewitt status = "okay"; 158*c6cf488eSChristian Hewitt pinctrl-0 = <&spdif_out_y_pins>; 159*c6cf488eSChristian Hewitt pinctrl-names = "default"; 160cc733bc9SAndreas Färber}; 161cc733bc9SAndreas Färber 1628d6dbe5bSNeil Armstrong&cec_AO { 1638d6dbe5bSNeil Armstrong status = "okay"; 1648d6dbe5bSNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 1658d6dbe5bSNeil Armstrong pinctrl-names = "default"; 1668d6dbe5bSNeil Armstrong hdmi-phandle = <&hdmi_tx>; 1678d6dbe5bSNeil Armstrong}; 1688d6dbe5bSNeil Armstrong 169f59063aeSMartin Blumenstinglðmac { 170f59063aeSMartin Blumenstingl status = "okay"; 1713be2d9cfSNeil Armstrong pinctrl-0 = <ð_rgmii_pins>; 172f59063aeSMartin Blumenstingl pinctrl-names = "default"; 1731220b297SMartin Blumenstingl 1741220b297SMartin Blumenstingl phy-handle = <ð_phy0>; 1751220b297SMartin Blumenstingl phy-mode = "rgmii"; 1761220b297SMartin Blumenstingl 177093d23dbSMartin Blumenstingl amlogic,tx-delay-ns = <2>; 178093d23dbSMartin Blumenstingl 1791220b297SMartin Blumenstingl mdio { 1801220b297SMartin Blumenstingl compatible = "snps,dwmac-mdio"; 1811220b297SMartin Blumenstingl #address-cells = <1>; 1821220b297SMartin Blumenstingl #size-cells = <0>; 1831220b297SMartin Blumenstingl 1841220b297SMartin Blumenstingl eth_phy0: ethernet-phy@0 { 1851220b297SMartin Blumenstingl /* Realtek RTL8211F (0x001cc916) */ 1861220b297SMartin Blumenstingl reg = <0>; 187f29cabf2SMartin Blumenstingl 188f29cabf2SMartin Blumenstingl reset-assert-us = <10000>; 189c183c406SStefan Agner reset-deassert-us = <80000>; 190f29cabf2SMartin Blumenstingl reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 191f29cabf2SMartin Blumenstingl 192ec066d8fSNeil Armstrong interrupt-parent = <&gpio_intc>; 193ec066d8fSNeil Armstrong /* MAC_INTR on GPIOZ_15 */ 194ec066d8fSNeil Armstrong interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 1951220b297SMartin Blumenstingl }; 1961220b297SMartin Blumenstingl }; 197f59063aeSMartin Blumenstingl}; 198c763eb82SMartin Blumenstingl 199954b67dfSNeil Armstrong&hdmi_tx { 200954b67dfSNeil Armstrong status = "okay"; 201954b67dfSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 202954b67dfSNeil Armstrong pinctrl-names = "default"; 203954b67dfSNeil Armstrong}; 204954b67dfSNeil Armstrong 205954b67dfSNeil Armstrong&hdmi_tx_tmds_port { 206954b67dfSNeil Armstrong hdmi_tx_tmds_out: endpoint { 207954b67dfSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 208954b67dfSNeil Armstrong }; 209954b67dfSNeil Armstrong}; 210954b67dfSNeil Armstrong 211d6f93b02SAndreas Färber&ir { 212c763eb82SMartin Blumenstingl status = "okay"; 213d6f93b02SAndreas Färber pinctrl-0 = <&remote_input_ao_pins>; 214d6f93b02SAndreas Färber pinctrl-names = "default"; 215bec117ceSChristian Hewitt linux,rc-map-name = "rc-vega-s9x"; 216c763eb82SMartin Blumenstingl}; 217c763eb82SMartin Blumenstingl 218d6f93b02SAndreas Färber&pwm_ef { 219c763eb82SMartin Blumenstingl status = "okay"; 220d6f93b02SAndreas Färber pinctrl-0 = <&pwm_e_pins>; 221d6f93b02SAndreas Färber pinctrl-names = "default"; 222d6f93b02SAndreas Färber clocks = <&clkc CLKID_FCLK_DIV4>; 223d6f93b02SAndreas Färber clock-names = "clkin0"; 224c763eb82SMartin Blumenstingl}; 225ab5b24fdSMartin Blumenstingl 226f1ef6262SNeil Armstrong&saradc { 227f1ef6262SNeil Armstrong status = "okay"; 228f1ef6262SNeil Armstrong vref-supply = <&vddio_ao18>; 229f1ef6262SNeil Armstrong}; 230f1ef6262SNeil Armstrong 231ab5b24fdSMartin Blumenstingl/* Wireless SDIO Module */ 232ab5b24fdSMartin Blumenstingl&sd_emmc_a { 233ab5b24fdSMartin Blumenstingl status = "okay"; 234b07a11dbSNeil Armstrong pinctrl-0 = <&sdio_pins>; 23567e7607fSJerome Brunet pinctrl-1 = <&sdio_clk_gate_pins>; 23667e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 237ab5b24fdSMartin Blumenstingl #address-cells = <1>; 238ab5b24fdSMartin Blumenstingl #size-cells = <0>; 239ab5b24fdSMartin Blumenstingl 240ab5b24fdSMartin Blumenstingl bus-width = <4>; 241ab5b24fdSMartin Blumenstingl cap-sd-highspeed; 242adc52bf7SJerome Brunet max-frequency = <50000000>; 243ab5b24fdSMartin Blumenstingl 244ab5b24fdSMartin Blumenstingl non-removable; 245ab5b24fdSMartin Blumenstingl disable-wp; 246ab5b24fdSMartin Blumenstingl 24748f38e82SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 24848f38e82SNeil Armstrong keep-power-in-suspend; 24948f38e82SNeil Armstrong 250ab5b24fdSMartin Blumenstingl mmc-pwrseq = <&sdio_pwrseq>; 251ab5b24fdSMartin Blumenstingl 25241112431SNeil Armstrong vmmc-supply = <&vddao_3v3>; 25341112431SNeil Armstrong vqmmc-supply = <&vddio_boot>; 254ab5b24fdSMartin Blumenstingl 25519e16750SAndreas Färber brcmf: wifi@1 { 256ab5b24fdSMartin Blumenstingl reg = <1>; 257ab5b24fdSMartin Blumenstingl compatible = "brcm,bcm4329-fmac"; 258ab5b24fdSMartin Blumenstingl }; 259ab5b24fdSMartin Blumenstingl}; 260ab5b24fdSMartin Blumenstingl 261ab5b24fdSMartin Blumenstingl/* SD card */ 262ab5b24fdSMartin Blumenstingl&sd_emmc_b { 263ab5b24fdSMartin Blumenstingl status = "okay"; 264ab5b24fdSMartin Blumenstingl pinctrl-0 = <&sdcard_pins>; 26567e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 26667e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 267ab5b24fdSMartin Blumenstingl 268ab5b24fdSMartin Blumenstingl bus-width = <4>; 269ab5b24fdSMartin Blumenstingl cap-sd-highspeed; 270adc52bf7SJerome Brunet max-frequency = <50000000>; 271ab5b24fdSMartin Blumenstingl disable-wp; 272ab5b24fdSMartin Blumenstingl 273f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 274ab5b24fdSMartin Blumenstingl 27541112431SNeil Armstrong vmmc-supply = <&vddao_3v3>; 27641112431SNeil Armstrong vqmmc-supply = <&vcc_3v3>; 277ab5b24fdSMartin Blumenstingl}; 278ab5b24fdSMartin Blumenstingl 279ab5b24fdSMartin Blumenstingl/* eMMC */ 280ab5b24fdSMartin Blumenstingl&sd_emmc_c { 281ab5b24fdSMartin Blumenstingl status = "okay"; 282ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 28367e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 28467e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 285ab5b24fdSMartin Blumenstingl 286ab5b24fdSMartin Blumenstingl bus-width = <8>; 287ab5b24fdSMartin Blumenstingl cap-mmc-highspeed; 288ab5b24fdSMartin Blumenstingl max-frequency = <200000000>; 289ab5b24fdSMartin Blumenstingl non-removable; 290ab5b24fdSMartin Blumenstingl disable-wp; 291ab5b24fdSMartin Blumenstingl mmc-ddr-1_8v; 292ab5b24fdSMartin Blumenstingl mmc-hs200-1_8v; 293ab5b24fdSMartin Blumenstingl 294ab5b24fdSMartin Blumenstingl mmc-pwrseq = <&emmc_pwrseq>; 295ab5b24fdSMartin Blumenstingl vmmc-supply = <&vcc_3v3>; 29641112431SNeil Armstrong vqmmc-supply = <&vddio_boot>; 297ab5b24fdSMartin Blumenstingl}; 298ab5b24fdSMartin Blumenstingl 299b07a11dbSNeil Armstrong/* This is connected to the Bluetooth module: */ 300b07a11dbSNeil Armstrong&uart_A { 301b07a11dbSNeil Armstrong status = "okay"; 302b07a11dbSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 303b07a11dbSNeil Armstrong pinctrl-names = "default"; 304b07a11dbSNeil Armstrong 305b07a11dbSNeil Armstrong bluetooth { 306b07a11dbSNeil Armstrong compatible = "brcm,bcm43438-bt"; 307b07a11dbSNeil Armstrong shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; 30899294518SChristian Hewitt max-speed = <2000000>; 30999294518SChristian Hewitt clocks = <&wifi32k>; 31099294518SChristian Hewitt clock-names = "lpo"; 311b07a11dbSNeil Armstrong }; 312b07a11dbSNeil Armstrong}; 313b07a11dbSNeil Armstrong 314b07a11dbSNeil Armstrong/* This UART is brought out to the DB9 connector */ 315d6f93b02SAndreas Färber&uart_AO { 316ab5b24fdSMartin Blumenstingl status = "okay"; 317d6f93b02SAndreas Färber pinctrl-0 = <&uart_ao_a_pins>; 318ab5b24fdSMartin Blumenstingl pinctrl-names = "default"; 319d6f93b02SAndreas Färber}; 320d6f93b02SAndreas Färber 321d6f93b02SAndreas Färber&usb0_phy { 322d6f93b02SAndreas Färber status = "okay"; 32341112431SNeil Armstrong phy-supply = <&usb_pwr>; 324d6f93b02SAndreas Färber}; 325d6f93b02SAndreas Färber 326d6f93b02SAndreas Färber&usb1_phy { 327d6f93b02SAndreas Färber status = "okay"; 328d6f93b02SAndreas Färber}; 329d6f93b02SAndreas Färber 330d6f93b02SAndreas Färber&usb0 { 331d6f93b02SAndreas Färber status = "okay"; 332d6f93b02SAndreas Färber}; 333d6f93b02SAndreas Färber 334d6f93b02SAndreas Färber&usb1 { 335d6f93b02SAndreas Färber status = "okay"; 336ab5b24fdSMartin Blumenstingl}; 337