1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/dts-v1/; 4 5#include <dt-bindings/leds/common.h> 6#include "rk3308.dtsi" 7 8/ { 9 model = "Radxa ROCK S0"; 10 compatible = "radxa,rock-s0", "rockchip,rk3308"; 11 12 aliases { 13 ethernet0 = &gmac; 14 mmc0 = &emmc; 15 mmc1 = &sdmmc; 16 mmc2 = &sdio; 17 }; 18 19 chosen { 20 stdout-path = "serial0:1500000n8"; 21 }; 22 23 leds { 24 compatible = "gpio-leds"; 25 pinctrl-names = "default"; 26 pinctrl-0 = <&pwr_led>; 27 28 led-green { 29 color = <LED_COLOR_ID_GREEN>; 30 default-state = "on"; 31 function = LED_FUNCTION_HEARTBEAT; 32 gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 33 linux,default-trigger = "heartbeat"; 34 }; 35 }; 36 37 vdd_log: regulator-1v04-vdd-log { 38 compatible = "regulator-fixed"; 39 regulator-name = "vdd_log"; 40 regulator-always-on; 41 regulator-boot-on; 42 regulator-min-microvolt = <1040000>; 43 regulator-max-microvolt = <1040000>; 44 vin-supply = <&vcc5v0_sys>; 45 }; 46 47 vcc_ddr: regulator-1v5-vcc-ddr { 48 compatible = "regulator-fixed"; 49 regulator-name = "vcc_ddr"; 50 regulator-always-on; 51 regulator-boot-on; 52 regulator-min-microvolt = <1500000>; 53 regulator-max-microvolt = <1500000>; 54 vin-supply = <&vcc5v0_sys>; 55 }; 56 57 vcc_1v8: regulator-1v8-vcc { 58 compatible = "regulator-fixed"; 59 regulator-name = "vcc_1v8"; 60 regulator-always-on; 61 regulator-boot-on; 62 regulator-min-microvolt = <1800000>; 63 regulator-max-microvolt = <1800000>; 64 vin-supply = <&vcc_io>; 65 }; 66 67 vcc_io: regulator-3v3-vcc-io { 68 compatible = "regulator-fixed"; 69 regulator-name = "vcc_io"; 70 regulator-always-on; 71 regulator-boot-on; 72 regulator-min-microvolt = <3300000>; 73 regulator-max-microvolt = <3300000>; 74 vin-supply = <&vcc5v0_sys>; 75 }; 76 77 vcc5v0_sys: regulator-5v0-vcc-sys { 78 compatible = "regulator-fixed"; 79 regulator-name = "vcc5v0_sys"; 80 regulator-always-on; 81 regulator-boot-on; 82 regulator-min-microvolt = <5000000>; 83 regulator-max-microvolt = <5000000>; 84 }; 85 86 vdd_core: regulator-vdd-core { 87 compatible = "pwm-regulator"; 88 pwms = <&pwm0 0 5000 1>; 89 pwm-supply = <&vcc5v0_sys>; 90 regulator-name = "vdd_core"; 91 regulator-always-on; 92 regulator-boot-on; 93 regulator-min-microvolt = <827000>; 94 regulator-max-microvolt = <1340000>; 95 regulator-settling-time-up-us = <250>; 96 }; 97 98 sdio_pwrseq: sdio-pwrseq { 99 compatible = "mmc-pwrseq-simple"; 100 pinctrl-names = "default"; 101 pinctrl-0 = <&wifi_reg_on>; 102 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 103 }; 104}; 105 106&cpu0 { 107 cpu-supply = <&vdd_core>; 108}; 109 110&emmc { 111 cap-mmc-highspeed; 112 no-sd; 113 no-sdio; 114 non-removable; 115 pinctrl-names = "default"; 116 pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_pwren>; 117 vmmc-supply = <&vcc_io>; 118 status = "okay"; 119}; 120 121&gmac { 122 clock_in_out = "output"; 123 phy-handle = <&rtl8201f>; 124 phy-supply = <&vcc_io>; 125 status = "okay"; 126 127 mdio { 128 compatible = "snps,dwmac-mdio"; 129 #address-cells = <1>; 130 #size-cells = <0>; 131 132 rtl8201f: ethernet-phy@1 { 133 compatible = "ethernet-phy-ieee802.3-c22"; 134 reg = <1>; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&mac_rst>; 137 reset-assert-us = <20000>; 138 reset-deassert-us = <50000>; 139 reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 140 }; 141 }; 142}; 143 144&io_domains { 145 vccio0-supply = <&vcc_io>; 146 vccio1-supply = <&vcc_io>; 147 vccio2-supply = <&vcc_io>; 148 vccio3-supply = <&vcc_io>; 149 vccio4-supply = <&vcc_1v8>; 150 vccio5-supply = <&vcc_io>; 151 status = "okay"; 152}; 153 154&pinctrl { 155 pinctrl-names = "default"; 156 pinctrl-0 = <&rtc_32k>; 157 158 bluetooth { 159 bt_reg_on: bt-reg-on { 160 rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 161 }; 162 163 bt_wake_host: bt-wake-host { 164 rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; 165 }; 166 167 host_wake_bt: host-wake-bt { 168 rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 169 }; 170 }; 171 172 gmac { 173 mac_rst: mac-rst { 174 rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; 175 }; 176 }; 177 178 leds { 179 pwr_led: pwr-led { 180 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 181 }; 182 }; 183 184 wifi { 185 wifi_reg_on: wifi-reg-on { 186 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 187 }; 188 189 wifi_wake_host: wifi-wake-host { 190 rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; 191 }; 192 }; 193}; 194 195&pwm0 { 196 pinctrl-names = "default"; 197 pinctrl-0 = <&pwm0_pin_pull_down>; 198 status = "okay"; 199}; 200 201&saradc { 202 vref-supply = <&vcc_1v8>; 203 status = "okay"; 204}; 205 206&sdio { 207 #address-cells = <1>; 208 #size-cells = <0>; 209 cap-sd-highspeed; 210 cap-sdio-irq; 211 keep-power-in-suspend; 212 max-frequency = <50000000>; 213 mmc-pwrseq = <&sdio_pwrseq>; 214 no-mmc; 215 no-sd; 216 non-removable; 217 vmmc-supply = <&vcc_io>; 218 vqmmc-supply = <&vcc_1v8>; 219 status = "okay"; 220 221 brcmf: wifi@1 { 222 compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; 223 reg = <1>; 224 interrupt-parent = <&gpio0>; 225 interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; 226 interrupt-names = "host-wake"; 227 pinctrl-names = "default"; 228 pinctrl-0 = <&wifi_wake_host>; 229 }; 230}; 231 232&sdmmc { 233 cap-mmc-highspeed; 234 cap-sd-highspeed; 235 disable-wp; 236 vmmc-supply = <&vcc_io>; 237 status = "okay"; 238}; 239 240&u2phy { 241 status = "okay"; 242}; 243 244&u2phy_host { 245 status = "okay"; 246}; 247 248&u2phy_otg { 249 status = "okay"; 250}; 251 252&uart0 { 253 pinctrl-names = "default"; 254 pinctrl-0 = <&uart0_xfer>; 255 status = "okay"; 256}; 257 258&uart4 { 259 uart-has-rtscts; 260 status = "okay"; 261 262 bluetooth { 263 compatible = "brcm,bcm43430a1-bt"; 264 clocks = <&cru SCLK_RTC32K>; 265 clock-names = "lpo"; 266 interrupt-parent = <&gpio4>; 267 interrupts = <RK_PB4 IRQ_TYPE_LEVEL_HIGH>; 268 interrupt-names = "host-wakeup"; 269 device-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>; 270 shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; 271 pinctrl-names = "default"; 272 pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>; 273 vbat-supply = <&vcc_io>; 274 vddio-supply = <&vcc_1v8>; 275 }; 276}; 277 278&usb_host_ehci { 279 status = "okay"; 280}; 281 282&usb_host_ohci { 283 status = "okay"; 284}; 285 286&usb20_otg { 287 dr_mode = "peripheral"; 288 status = "okay"; 289}; 290 291&wdt { 292 status = "okay"; 293}; 294