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