1fb72c03eSNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2fb72c03eSNeil Armstrong/* 3fb72c03eSNeil Armstrong * Copyright (c) 2016 Andreas Färber 4fb72c03eSNeil Armstrong * Copyright (c) 2016 BayLibre, Inc. 5fb72c03eSNeil Armstrong * Author: Kevin Hilman <khilman@kernel.org> 6fb72c03eSNeil Armstrong */ 7fb72c03eSNeil Armstrong 8fb72c03eSNeil Armstrong#include "meson-gxbb.dtsi" 9*c019abb2SChristian Hewitt#include <dt-bindings/gpio/gpio.h> 10fb72c03eSNeil Armstrong 11fb72c03eSNeil Armstrong/ { 12fb72c03eSNeil Armstrong aliases { 13fb72c03eSNeil Armstrong serial0 = &uart_AO; 14fb72c03eSNeil Armstrong ethernet0 = ðmac; 15fb72c03eSNeil Armstrong }; 16fb72c03eSNeil Armstrong 17fb72c03eSNeil Armstrong chosen { 18fb72c03eSNeil Armstrong stdout-path = "serial0:115200n8"; 19fb72c03eSNeil Armstrong }; 20fb72c03eSNeil Armstrong 21fb72c03eSNeil Armstrong memory@0 { 22fb72c03eSNeil Armstrong device_type = "memory"; 23fb72c03eSNeil Armstrong reg = <0x0 0x0 0x0 0x40000000>; 24fb72c03eSNeil Armstrong }; 25fb72c03eSNeil Armstrong 26fb72c03eSNeil Armstrong leds { 27fb72c03eSNeil Armstrong compatible = "gpio-leds"; 28fb72c03eSNeil Armstrong 2908dc0e5dSNeil Armstrong led-system { 30fb72c03eSNeil Armstrong label = "wetek-play:system-status"; 31fb72c03eSNeil Armstrong gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 32fb72c03eSNeil Armstrong default-state = "on"; 33fb72c03eSNeil Armstrong panic-indicator; 34fb72c03eSNeil Armstrong }; 35fb72c03eSNeil Armstrong }; 36fb72c03eSNeil Armstrong 37fb72c03eSNeil Armstrong usb_pwr: regulator-usb-pwrs { 38fb72c03eSNeil Armstrong compatible = "regulator-fixed"; 39fb72c03eSNeil Armstrong 40fb72c03eSNeil Armstrong regulator-name = "USB_PWR"; 41fb72c03eSNeil Armstrong 42fb72c03eSNeil Armstrong regulator-min-microvolt = <5000000>; 43fb72c03eSNeil Armstrong regulator-max-microvolt = <5000000>; 44fb72c03eSNeil Armstrong 45fb72c03eSNeil Armstrong gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 46fb72c03eSNeil Armstrong enable-active-high; 47fb72c03eSNeil Armstrong }; 48fb72c03eSNeil Armstrong 49fb72c03eSNeil Armstrong vddio_boot: regulator-vddio_boot { 50fb72c03eSNeil Armstrong compatible = "regulator-fixed"; 51fb72c03eSNeil Armstrong regulator-name = "VDDIO_BOOT"; 52fb72c03eSNeil Armstrong regulator-min-microvolt = <1800000>; 53fb72c03eSNeil Armstrong regulator-max-microvolt = <1800000>; 54fb72c03eSNeil Armstrong }; 55fb72c03eSNeil Armstrong 56fb72c03eSNeil Armstrong vddao_3v3: regulator-vddao_3v3 { 57fb72c03eSNeil Armstrong compatible = "regulator-fixed"; 58fb72c03eSNeil Armstrong regulator-name = "VDDAO_3V3"; 59fb72c03eSNeil Armstrong regulator-min-microvolt = <3300000>; 60fb72c03eSNeil Armstrong regulator-max-microvolt = <3300000>; 61fb72c03eSNeil Armstrong }; 62fb72c03eSNeil Armstrong 63dfa8b3cdSChristian Hewitt vddio_ao18: regulator-vddio_ao18 { 64dfa8b3cdSChristian Hewitt compatible = "regulator-fixed"; 65dfa8b3cdSChristian Hewitt regulator-name = "VDDIO_AO18"; 66dfa8b3cdSChristian Hewitt regulator-min-microvolt = <1800000>; 67dfa8b3cdSChristian Hewitt regulator-max-microvolt = <1800000>; 688182a358SChristian Hewitt regulator-always-on; 69dfa8b3cdSChristian Hewitt }; 70dfa8b3cdSChristian Hewitt 71fb72c03eSNeil Armstrong vcc_3v3: regulator-vcc_3v3 { 72fb72c03eSNeil Armstrong compatible = "regulator-fixed"; 73fb72c03eSNeil Armstrong regulator-name = "VCC_3V3"; 74fb72c03eSNeil Armstrong regulator-min-microvolt = <3300000>; 75fb72c03eSNeil Armstrong regulator-max-microvolt = <3300000>; 76fb72c03eSNeil Armstrong }; 77fb72c03eSNeil Armstrong 78fb72c03eSNeil Armstrong emmc_pwrseq: emmc-pwrseq { 79fb72c03eSNeil Armstrong compatible = "mmc-pwrseq-emmc"; 80fb72c03eSNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 81fb72c03eSNeil Armstrong }; 82fb72c03eSNeil Armstrong 83fb72c03eSNeil Armstrong wifi32k: wifi32k { 84fb72c03eSNeil Armstrong compatible = "pwm-clock"; 85fb72c03eSNeil Armstrong #clock-cells = <0>; 86fb72c03eSNeil Armstrong clock-frequency = <32768>; 87fb72c03eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 88fb72c03eSNeil Armstrong }; 89fb72c03eSNeil Armstrong 90fb72c03eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 91fb72c03eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 92fb72c03eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 93fb72c03eSNeil Armstrong clocks = <&wifi32k>; 94fb72c03eSNeil Armstrong clock-names = "ext_clock"; 95fb72c03eSNeil Armstrong }; 96fb72c03eSNeil Armstrong 97fb72c03eSNeil Armstrong cvbs-connector { 98fb72c03eSNeil Armstrong compatible = "composite-video-connector"; 99fb72c03eSNeil Armstrong 100fb72c03eSNeil Armstrong port { 101fb72c03eSNeil Armstrong cvbs_connector_in: endpoint { 102fb72c03eSNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 103fb72c03eSNeil Armstrong }; 104fb72c03eSNeil Armstrong }; 105fb72c03eSNeil Armstrong }; 106fb72c03eSNeil Armstrong 107fb72c03eSNeil Armstrong hdmi-connector { 108fb72c03eSNeil Armstrong compatible = "hdmi-connector"; 109fb72c03eSNeil Armstrong type = "a"; 110fb72c03eSNeil Armstrong 111fb72c03eSNeil Armstrong port { 112fb72c03eSNeil Armstrong hdmi_connector_in: endpoint { 113fb72c03eSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 114fb72c03eSNeil Armstrong }; 115fb72c03eSNeil Armstrong }; 116fb72c03eSNeil Armstrong }; 117fb72c03eSNeil Armstrong}; 118fb72c03eSNeil Armstrong 119fb72c03eSNeil Armstrong&cec_AO { 120fb72c03eSNeil Armstrong status = "okay"; 121fb72c03eSNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 122fb72c03eSNeil Armstrong pinctrl-names = "default"; 123fb72c03eSNeil Armstrong hdmi-phandle = <&hdmi_tx>; 124fb72c03eSNeil Armstrong}; 125fb72c03eSNeil Armstrong 126fb72c03eSNeil Armstrong&cvbs_vdac_port { 127fb72c03eSNeil Armstrong cvbs_vdac_out: endpoint { 128fb72c03eSNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 129fb72c03eSNeil Armstrong }; 130fb72c03eSNeil Armstrong}; 131fb72c03eSNeil Armstrong 132fb72c03eSNeil Armstrongðmac { 133fb72c03eSNeil Armstrong status = "okay"; 134fb72c03eSNeil Armstrong pinctrl-0 = <ð_rgmii_pins>; 135fb72c03eSNeil Armstrong pinctrl-names = "default"; 136fb72c03eSNeil Armstrong 137fb72c03eSNeil Armstrong phy-handle = <ð_phy0>; 138fb72c03eSNeil Armstrong phy-mode = "rgmii"; 139fb72c03eSNeil Armstrong 140fb72c03eSNeil Armstrong amlogic,tx-delay-ns = <2>; 141fb72c03eSNeil Armstrong 142fb72c03eSNeil Armstrong mdio { 143fb72c03eSNeil Armstrong compatible = "snps,dwmac-mdio"; 144fb72c03eSNeil Armstrong #address-cells = <1>; 145fb72c03eSNeil Armstrong #size-cells = <0>; 146fb72c03eSNeil Armstrong 147fb72c03eSNeil Armstrong eth_phy0: ethernet-phy@0 { 148fb72c03eSNeil Armstrong /* Realtek RTL8211F (0x001cc916) */ 149fb72c03eSNeil Armstrong reg = <0>; 150f29cabf2SMartin Blumenstingl 151f29cabf2SMartin Blumenstingl reset-assert-us = <10000>; 152c183c406SStefan Agner reset-deassert-us = <80000>; 153f29cabf2SMartin Blumenstingl reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 154647e1643SChristian Hewitt 155647e1643SChristian Hewitt interrupt-parent = <&gpio_intc>; 156647e1643SChristian Hewitt /* MAC_INTR on GPIOZ_15 */ 157647e1643SChristian Hewitt interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 158fb72c03eSNeil Armstrong }; 159fb72c03eSNeil Armstrong }; 160fb72c03eSNeil Armstrong}; 161fb72c03eSNeil Armstrong 162fb72c03eSNeil Armstrong&hdmi_tx { 163fb72c03eSNeil Armstrong status = "okay"; 164fb72c03eSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 165fb72c03eSNeil Armstrong pinctrl-names = "default"; 1668182a358SChristian Hewitt hdmi-supply = <&vddio_ao18>; 167fb72c03eSNeil Armstrong}; 168fb72c03eSNeil Armstrong 169fb72c03eSNeil Armstrong&hdmi_tx_tmds_port { 170fb72c03eSNeil Armstrong hdmi_tx_tmds_out: endpoint { 171fb72c03eSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 172fb72c03eSNeil Armstrong }; 173fb72c03eSNeil Armstrong}; 174fb72c03eSNeil Armstrong 175fb72c03eSNeil Armstrong&ir { 176fb72c03eSNeil Armstrong status = "okay"; 177fb72c03eSNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 178fb72c03eSNeil Armstrong pinctrl-names = "default"; 179fb72c03eSNeil Armstrong}; 180fb72c03eSNeil Armstrong 181fb72c03eSNeil Armstrong&pwm_ef { 182fb72c03eSNeil Armstrong status = "okay"; 183fb72c03eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 184fb72c03eSNeil Armstrong pinctrl-names = "default"; 185fb72c03eSNeil Armstrong clocks = <&clkc CLKID_FCLK_DIV4>; 186fb72c03eSNeil Armstrong clock-names = "clkin0"; 187fb72c03eSNeil Armstrong}; 188fb72c03eSNeil Armstrong 189dfa8b3cdSChristian Hewitt&saradc { 190dfa8b3cdSChristian Hewitt status = "okay"; 191dfa8b3cdSChristian Hewitt vref-supply = <&vddio_ao18>; 192dfa8b3cdSChristian Hewitt}; 193dfa8b3cdSChristian Hewitt 194fb72c03eSNeil Armstrong/* Wireless SDIO Module */ 195fb72c03eSNeil Armstrong&sd_emmc_a { 196fb72c03eSNeil Armstrong status = "okay"; 197fb72c03eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 198fb72c03eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 199fb72c03eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 200fb72c03eSNeil Armstrong #address-cells = <1>; 201fb72c03eSNeil Armstrong #size-cells = <0>; 202fb72c03eSNeil Armstrong 203fb72c03eSNeil Armstrong bus-width = <4>; 204fb72c03eSNeil Armstrong cap-sd-highspeed; 205adc52bf7SJerome Brunet max-frequency = <50000000>; 206fb72c03eSNeil Armstrong 207fb72c03eSNeil Armstrong non-removable; 208fb72c03eSNeil Armstrong disable-wp; 209fb72c03eSNeil Armstrong 2106b697024SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 2116b697024SNeil Armstrong keep-power-in-suspend; 2126b697024SNeil Armstrong 213fb72c03eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 214fb72c03eSNeil Armstrong 215fb72c03eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 216fb72c03eSNeil Armstrong vqmmc-supply = <&vddio_boot>; 217fb72c03eSNeil Armstrong 218fb72c03eSNeil Armstrong brcmf: wifi@1 { 219fb72c03eSNeil Armstrong reg = <1>; 220fb72c03eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 221fb72c03eSNeil Armstrong }; 222fb72c03eSNeil Armstrong}; 223fb72c03eSNeil Armstrong 224fb72c03eSNeil Armstrong/* SD card */ 225fb72c03eSNeil Armstrong&sd_emmc_b { 226fb72c03eSNeil Armstrong status = "okay"; 227fb72c03eSNeil Armstrong pinctrl-0 = <&sdcard_pins>; 228fb72c03eSNeil Armstrong pinctrl-1 = <&sdcard_clk_gate_pins>; 229fb72c03eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 230fb72c03eSNeil Armstrong 231fb72c03eSNeil Armstrong bus-width = <4>; 232fb72c03eSNeil Armstrong cap-sd-highspeed; 233adc52bf7SJerome Brunet max-frequency = <50000000>; 234fb72c03eSNeil Armstrong disable-wp; 235fb72c03eSNeil Armstrong 236f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 237fb72c03eSNeil Armstrong 238fb72c03eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 239fb72c03eSNeil Armstrong vqmmc-supply = <&vcc_3v3>; 240fb72c03eSNeil Armstrong}; 241fb72c03eSNeil Armstrong 242fb72c03eSNeil Armstrong/* eMMC */ 243fb72c03eSNeil Armstrong&sd_emmc_c { 244fb72c03eSNeil Armstrong status = "okay"; 245fb72c03eSNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 246fb72c03eSNeil Armstrong pinctrl-1 = <&emmc_clk_gate_pins>; 247fb72c03eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 248fb72c03eSNeil Armstrong 249fb72c03eSNeil Armstrong bus-width = <8>; 250fb72c03eSNeil Armstrong cap-mmc-highspeed; 251fb72c03eSNeil Armstrong max-frequency = <200000000>; 252fb72c03eSNeil Armstrong non-removable; 253fb72c03eSNeil Armstrong disable-wp; 254fb72c03eSNeil Armstrong mmc-ddr-1_8v; 255fb72c03eSNeil Armstrong mmc-hs200-1_8v; 256fb72c03eSNeil Armstrong 257fb72c03eSNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 258fb72c03eSNeil Armstrong vmmc-supply = <&vcc_3v3>; 259fb72c03eSNeil Armstrong vqmmc-supply = <&vddio_boot>; 260fb72c03eSNeil Armstrong}; 261fb72c03eSNeil Armstrong 26255c2440dSChristian Hewitt/* This is connected to the Bluetooth module: */ 26355c2440dSChristian Hewitt&uart_A { 26455c2440dSChristian Hewitt status = "okay"; 26555c2440dSChristian Hewitt pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 26655c2440dSChristian Hewitt pinctrl-names = "default"; 26755c2440dSChristian Hewitt uart-has-rtscts; 26855c2440dSChristian Hewitt 26955c2440dSChristian Hewitt bluetooth { 27055c2440dSChristian Hewitt compatible = "brcm,bcm43438-bt"; 27155c2440dSChristian Hewitt shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; 27255c2440dSChristian Hewitt }; 27355c2440dSChristian Hewitt}; 27455c2440dSChristian Hewitt 275fb72c03eSNeil Armstrong/* This UART is brought out to the DB9 connector */ 276fb72c03eSNeil Armstrong&uart_AO { 277fb72c03eSNeil Armstrong status = "okay"; 278fb72c03eSNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 279fb72c03eSNeil Armstrong pinctrl-names = "default"; 280fb72c03eSNeil Armstrong}; 281fb72c03eSNeil Armstrong 282fb72c03eSNeil Armstrong&usb0_phy { 283fb72c03eSNeil Armstrong status = "okay"; 284fb72c03eSNeil Armstrong phy-supply = <&usb_pwr>; 285fb72c03eSNeil Armstrong}; 286fb72c03eSNeil Armstrong 287fb72c03eSNeil Armstrong&usb0 { 288fb72c03eSNeil Armstrong status = "okay"; 289fb72c03eSNeil Armstrong}; 290