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