1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2016-2017 Andreas Färber 4 * 5 * Based on nexbox-a1: 6 * 7 * Copyright (c) 2016 BayLibre, SAS. 8 * Author: Neil Armstrong <narmstrong@baylibre.com> 9 * 10 * Copyright (c) 2016 Endless Computers, Inc. 11 * Author: Carlo Caione <carlo@endlessm.com> 12 */ 13 14/dts-v1/; 15 16#include "meson-gxm.dtsi" 17 18/ { 19 compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm"; 20 model = "R-Box Pro"; 21 22 aliases { 23 serial0 = &uart_AO; 24 ethernet0 = ðmac; 25 }; 26 27 chosen { 28 stdout-path = "serial0:115200n8"; 29 }; 30 31 memory@0 { 32 device_type = "memory"; 33 reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */ 34 }; 35 36 leds { 37 compatible = "gpio-leds"; 38 39 blue { 40 label = "rbox-pro:blue:on"; 41 gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 42 default-state = "on"; 43 }; 44 45 red { 46 label = "rbox-pro:red:standby"; 47 gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>; 48 default-state = "off"; 49 retain-state-suspended; 50 panic-indicator; 51 }; 52 }; 53 54 vddio_boot: regulator-vddio-boot { 55 compatible = "regulator-fixed"; 56 regulator-name = "VDDIO_BOOT"; 57 regulator-min-microvolt = <1800000>; 58 regulator-max-microvolt = <1800000>; 59 }; 60 61 vddao_3v3: regulator-vddao-3v3 { 62 compatible = "regulator-fixed"; 63 regulator-name = "VDDAO_3V3"; 64 regulator-min-microvolt = <3300000>; 65 regulator-max-microvolt = <3300000>; 66 }; 67 68 vcc_3v3: regulator-vcc-3v3 { 69 compatible = "regulator-fixed"; 70 regulator-name = "VCC_3V3"; 71 regulator-min-microvolt = <3300000>; 72 regulator-max-microvolt = <3300000>; 73 }; 74 75 emmc_pwrseq: emmc-pwrseq { 76 compatible = "mmc-pwrseq-emmc"; 77 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 78 }; 79 80 wifi32k: wifi32k { 81 compatible = "pwm-clock"; 82 #clock-cells = <0>; 83 clock-frequency = <32768>; 84 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 85 }; 86 87 sdio_pwrseq: sdio-pwrseq { 88 compatible = "mmc-pwrseq-simple"; 89 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 90 clocks = <&wifi32k>; 91 clock-names = "ext_clock"; 92 }; 93}; 94 95ðmac { 96 status = "okay"; 97 98 pinctrl-0 = <ð_pins>; 99 pinctrl-names = "default"; 100 101 /* Select external PHY by default */ 102 phy-handle = <&external_phy>; 103 104 amlogic,tx-delay-ns = <2>; 105 106 /* External PHY is in RGMII */ 107 phy-mode = "rgmii"; 108}; 109 110&external_mdio { 111 external_phy: ethernet-phy@0 { 112 /* Realtek RTL8211F (0x001cc916) */ 113 reg = <0>; 114 max-speed = <1000>; 115 116 reset-assert-us = <10000>; 117 reset-deassert-us = <30000>; 118 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 119 }; 120}; 121 122&ir { 123 status = "okay"; 124 pinctrl-0 = <&remote_input_ao_pins>; 125 pinctrl-names = "default"; 126}; 127 128&pwm_ef { 129 status = "okay"; 130 pinctrl-0 = <&pwm_e_pins>; 131 pinctrl-names = "default"; 132 clocks = <&clkc CLKID_FCLK_DIV4>; 133 clock-names = "clkin0"; 134}; 135 136/* Wireless SDIO Module */ 137&sd_emmc_a { 138 status = "okay"; 139 pinctrl-0 = <&sdio_pins>; 140 pinctrl-names = "default"; 141 #address-cells = <1>; 142 #size-cells = <0>; 143 144 bus-width = <4>; 145 cap-sd-highspeed; 146 max-frequency = <50000000>; 147 148 non-removable; 149 disable-wp; 150 151 /* WiFi firmware requires power to be kept while in suspend */ 152 keep-power-in-suspend; 153 154 mmc-pwrseq = <&sdio_pwrseq>; 155 156 vmmc-supply = <&vddao_3v3>; 157 vqmmc-supply = <&vddio_boot>; 158 159 brcmf: brcmf@1 { 160 reg = <1>; 161 compatible = "brcm,bcm4329-fmac"; 162 }; 163}; 164 165/* SD card */ 166&sd_emmc_b { 167 status = "okay"; 168 pinctrl-0 = <&sdcard_pins>; 169 pinctrl-names = "default"; 170 171 bus-width = <4>; 172 cap-sd-highspeed; 173 max-frequency = <50000000>; 174 disable-wp; 175 176 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 177 178 vmmc-supply = <&vddao_3v3>; 179 vqmmc-supply = <&vddio_boot>; 180}; 181 182/* eMMC */ 183&sd_emmc_c { 184 status = "okay"; 185 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 186 pinctrl-names = "default"; 187 188 bus-width = <8>; 189 cap-mmc-highspeed; 190 max-frequency = <200000000>; 191 non-removable; 192 disable-wp; 193 mmc-ddr-1_8v; 194 mmc-hs200-1_8v; 195 196 mmc-pwrseq = <&emmc_pwrseq>; 197 vmmc-supply = <&vcc_3v3>; 198 vqmmc-supply = <&vddio_boot>; 199}; 200 201&uart_AO { 202 status = "okay"; 203 pinctrl-0 = <&uart_ao_a_pins>; 204 pinctrl-names = "default"; 205}; 206