1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2020 David Bauer <mail@david-bauer.net> 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/input/input.h> 9#include <dt-bindings/gpio/gpio.h> 10#include "rk3328.dtsi" 11 12/ { 13 model = "FriendlyElec NanoPi R2S"; 14 compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328"; 15 16 aliases { 17 ethernet0 = &gmac2io; 18 ethernet1 = &rtl8153; 19 mmc0 = &sdmmc; 20 }; 21 22 chosen { 23 stdout-path = "serial2:1500000n8"; 24 }; 25 26 gmac_clk: gmac-clock { 27 compatible = "fixed-clock"; 28 clock-frequency = <125000000>; 29 clock-output-names = "gmac_clkin"; 30 #clock-cells = <0>; 31 }; 32 33 keys { 34 compatible = "gpio-keys"; 35 pinctrl-0 = <&reset_button_pin>; 36 pinctrl-names = "default"; 37 38 key-reset { 39 label = "reset"; 40 gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; 41 linux,code = <KEY_RESTART>; 42 debounce-interval = <50>; 43 }; 44 }; 45 46 leds { 47 compatible = "gpio-leds"; 48 pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>; 49 pinctrl-names = "default"; 50 51 lan_led: led-0 { 52 gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 53 label = "nanopi-r2s:green:lan"; 54 }; 55 56 sys_led: led-1 { 57 gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; 58 label = "nanopi-r2s:red:sys"; 59 default-state = "on"; 60 }; 61 62 wan_led: led-2 { 63 gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>; 64 label = "nanopi-r2s:green:wan"; 65 }; 66 }; 67 68 vcc_io_sdio: sdmmcio-regulator { 69 compatible = "regulator-gpio"; 70 enable-active-high; 71 gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>; 72 pinctrl-0 = <&sdio_vcc_pin>; 73 pinctrl-names = "default"; 74 regulator-name = "vcc_io_sdio"; 75 regulator-always-on; 76 regulator-min-microvolt = <1800000>; 77 regulator-max-microvolt = <3300000>; 78 regulator-settling-time-us = <5000>; 79 regulator-type = "voltage"; 80 startup-delay-us = <2000>; 81 states = <1800000 0x1>, 82 <3300000 0x0>; 83 vin-supply = <&vcc_io_33>; 84 }; 85 86 vcc_sd: sdmmc-regulator { 87 compatible = "regulator-fixed"; 88 gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; 89 pinctrl-0 = <&sdmmc0m1_pin>; 90 pinctrl-names = "default"; 91 regulator-name = "vcc_sd"; 92 regulator-boot-on; 93 regulator-min-microvolt = <3300000>; 94 regulator-max-microvolt = <3300000>; 95 vin-supply = <&vcc_io_33>; 96 }; 97 98 vdd_5v: vdd-5v { 99 compatible = "regulator-fixed"; 100 regulator-name = "vdd_5v"; 101 regulator-always-on; 102 regulator-boot-on; 103 regulator-min-microvolt = <5000000>; 104 regulator-max-microvolt = <5000000>; 105 }; 106 107 vdd_5v_lan: vdd-5v-lan { 108 compatible = "regulator-fixed"; 109 enable-active-high; 110 gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; 111 pinctrl-0 = <&lan_vdd_pin>; 112 pinctrl-names = "default"; 113 regulator-name = "vdd_5v_lan"; 114 regulator-always-on; 115 regulator-boot-on; 116 vin-supply = <&vdd_5v>; 117 }; 118}; 119 120&cpu0 { 121 cpu-supply = <&vdd_arm>; 122}; 123 124&cpu1 { 125 cpu-supply = <&vdd_arm>; 126}; 127 128&cpu2 { 129 cpu-supply = <&vdd_arm>; 130}; 131 132&cpu3 { 133 cpu-supply = <&vdd_arm>; 134}; 135 136&display_subsystem { 137 status = "disabled"; 138}; 139 140&gmac2io { 141 assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; 142 assigned-clock-parents = <&gmac_clk>, <&gmac_clk>; 143 clock_in_out = "input"; 144 phy-handle = <&rtl8211e>; 145 phy-mode = "rgmii"; 146 phy-supply = <&vcc_io_33>; 147 pinctrl-0 = <&rgmiim1_pins>; 148 pinctrl-names = "default"; 149 rx_delay = <0x18>; 150 snps,aal; 151 tx_delay = <0x24>; 152 status = "okay"; 153 154 mdio { 155 compatible = "snps,dwmac-mdio"; 156 #address-cells = <1>; 157 #size-cells = <0>; 158 159 rtl8211e: ethernet-phy@1 { 160 reg = <1>; 161 pinctrl-0 = <ð_phy_reset_pin>; 162 pinctrl-names = "default"; 163 reset-assert-us = <10000>; 164 reset-deassert-us = <50000>; 165 reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; 166 }; 167 }; 168}; 169 170&i2c1 { 171 status = "okay"; 172 173 rk805: pmic@18 { 174 compatible = "rockchip,rk805"; 175 reg = <0x18>; 176 interrupt-parent = <&gpio1>; 177 interrupts = <24 IRQ_TYPE_LEVEL_LOW>; 178 #clock-cells = <1>; 179 clock-output-names = "xin32k", "rk805-clkout2"; 180 gpio-controller; 181 #gpio-cells = <2>; 182 pinctrl-0 = <&pmic_int_l>; 183 pinctrl-names = "default"; 184 rockchip,system-power-controller; 185 wakeup-source; 186 187 vcc1-supply = <&vdd_5v>; 188 vcc2-supply = <&vdd_5v>; 189 vcc3-supply = <&vdd_5v>; 190 vcc4-supply = <&vdd_5v>; 191 vcc5-supply = <&vcc_io_33>; 192 vcc6-supply = <&vdd_5v>; 193 194 regulators { 195 vdd_log: DCDC_REG1 { 196 regulator-name = "vdd_log"; 197 regulator-always-on; 198 regulator-boot-on; 199 regulator-min-microvolt = <712500>; 200 regulator-max-microvolt = <1450000>; 201 regulator-ramp-delay = <12500>; 202 203 regulator-state-mem { 204 regulator-on-in-suspend; 205 regulator-suspend-microvolt = <1000000>; 206 }; 207 }; 208 209 vdd_arm: DCDC_REG2 { 210 regulator-name = "vdd_arm"; 211 regulator-always-on; 212 regulator-boot-on; 213 regulator-min-microvolt = <712500>; 214 regulator-max-microvolt = <1450000>; 215 regulator-ramp-delay = <12500>; 216 217 regulator-state-mem { 218 regulator-on-in-suspend; 219 regulator-suspend-microvolt = <950000>; 220 }; 221 }; 222 223 vcc_ddr: DCDC_REG3 { 224 regulator-name = "vcc_ddr"; 225 regulator-always-on; 226 regulator-boot-on; 227 228 regulator-state-mem { 229 regulator-on-in-suspend; 230 }; 231 }; 232 233 vcc_io_33: DCDC_REG4 { 234 regulator-name = "vcc_io_33"; 235 regulator-always-on; 236 regulator-boot-on; 237 regulator-min-microvolt = <3300000>; 238 regulator-max-microvolt = <3300000>; 239 240 regulator-state-mem { 241 regulator-on-in-suspend; 242 regulator-suspend-microvolt = <3300000>; 243 }; 244 }; 245 246 vcc_18: LDO_REG1 { 247 regulator-name = "vcc_18"; 248 regulator-always-on; 249 regulator-boot-on; 250 regulator-min-microvolt = <1800000>; 251 regulator-max-microvolt = <1800000>; 252 253 regulator-state-mem { 254 regulator-on-in-suspend; 255 regulator-suspend-microvolt = <1800000>; 256 }; 257 }; 258 259 vcc18_emmc: LDO_REG2 { 260 regulator-name = "vcc18_emmc"; 261 regulator-always-on; 262 regulator-boot-on; 263 regulator-min-microvolt = <1800000>; 264 regulator-max-microvolt = <1800000>; 265 266 regulator-state-mem { 267 regulator-on-in-suspend; 268 regulator-suspend-microvolt = <1800000>; 269 }; 270 }; 271 272 vdd_10: LDO_REG3 { 273 regulator-name = "vdd_10"; 274 regulator-always-on; 275 regulator-boot-on; 276 regulator-min-microvolt = <1000000>; 277 regulator-max-microvolt = <1000000>; 278 279 regulator-state-mem { 280 regulator-on-in-suspend; 281 regulator-suspend-microvolt = <1000000>; 282 }; 283 }; 284 }; 285 }; 286}; 287 288&io_domains { 289 pmuio-supply = <&vcc_io_33>; 290 vccio1-supply = <&vcc_io_33>; 291 vccio2-supply = <&vcc18_emmc>; 292 vccio3-supply = <&vcc_io_sdio>; 293 vccio4-supply = <&vcc_18>; 294 vccio5-supply = <&vcc_io_33>; 295 vccio6-supply = <&vcc_io_33>; 296 status = "okay"; 297}; 298 299&pinctrl { 300 button { 301 reset_button_pin: reset-button-pin { 302 rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 303 }; 304 }; 305 306 gmac2io { 307 eth_phy_reset_pin: eth-phy-reset-pin { 308 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; 309 }; 310 }; 311 312 leds { 313 lan_led_pin: lan-led-pin { 314 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 315 }; 316 317 sys_led_pin: sys-led-pin { 318 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 319 }; 320 321 wan_led_pin: wan-led-pin { 322 rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 323 }; 324 }; 325 326 lan { 327 lan_vdd_pin: lan-vdd-pin { 328 rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 329 }; 330 }; 331 332 pmic { 333 pmic_int_l: pmic-int-l { 334 rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; 335 }; 336 }; 337 338 sd { 339 sdio_vcc_pin: sdio-vcc-pin { 340 rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; 341 }; 342 }; 343}; 344 345&pwm2 { 346 status = "okay"; 347}; 348 349&sdmmc { 350 bus-width = <4>; 351 cap-sd-highspeed; 352 disable-wp; 353 pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>; 354 pinctrl-names = "default"; 355 sd-uhs-sdr12; 356 sd-uhs-sdr25; 357 sd-uhs-sdr50; 358 sd-uhs-sdr104; 359 vmmc-supply = <&vcc_sd>; 360 vqmmc-supply = <&vcc_io_sdio>; 361 status = "okay"; 362}; 363 364&tsadc { 365 rockchip,hw-tshut-mode = <0>; 366 rockchip,hw-tshut-polarity = <0>; 367 status = "okay"; 368}; 369 370&u2phy { 371 status = "okay"; 372}; 373 374&u2phy_host { 375 status = "okay"; 376}; 377 378&u2phy_otg { 379 status = "okay"; 380}; 381 382&uart2 { 383 status = "okay"; 384}; 385 386&usb20_otg { 387 status = "okay"; 388 dr_mode = "host"; 389}; 390 391&usbdrd3 { 392 dr_mode = "host"; 393 status = "okay"; 394 #address-cells = <1>; 395 #size-cells = <0>; 396 397 /* Second port is for USB 3.0 */ 398 rtl8153: device@2 { 399 compatible = "usbbda,8153"; 400 reg = <2>; 401 }; 402}; 403 404&usb_host0_ehci { 405 status = "okay"; 406}; 407 408&usb_host0_ohci { 409 status = "okay"; 410}; 411