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_clkin"; 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_gpio>; 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 compatible = "ethernet-phy-id001c.c915", 138 "ethernet-phy-ieee802.3-c22"; 139 reg = <1>; 140 pinctrl-0 = <ð_phy_reset_pin>; 141 pinctrl-names = "default"; 142 reset-assert-us = <10000>; 143 reset-deassert-us = <50000>; 144 reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; 145 }; 146 }; 147}; 148 149&i2c1 { 150 status = "okay"; 151 152 rk805: pmic@18 { 153 compatible = "rockchip,rk805"; 154 reg = <0x18>; 155 interrupt-parent = <&gpio1>; 156 interrupts = <24 IRQ_TYPE_LEVEL_LOW>; 157 #clock-cells = <1>; 158 clock-output-names = "xin32k", "rk805-clkout2"; 159 gpio-controller; 160 #gpio-cells = <2>; 161 pinctrl-0 = <&pmic_int_l>; 162 pinctrl-names = "default"; 163 rockchip,system-power-controller; 164 wakeup-source; 165 166 vcc1-supply = <&vdd_5v>; 167 vcc2-supply = <&vdd_5v>; 168 vcc3-supply = <&vdd_5v>; 169 vcc4-supply = <&vdd_5v>; 170 vcc5-supply = <&vcc_io_33>; 171 vcc6-supply = <&vdd_5v>; 172 173 regulators { 174 vdd_log: DCDC_REG1 { 175 regulator-name = "vdd_log"; 176 regulator-always-on; 177 regulator-boot-on; 178 regulator-min-microvolt = <712500>; 179 regulator-max-microvolt = <1450000>; 180 regulator-ramp-delay = <12500>; 181 182 regulator-state-mem { 183 regulator-on-in-suspend; 184 regulator-suspend-microvolt = <1000000>; 185 }; 186 }; 187 188 vdd_arm: DCDC_REG2 { 189 regulator-name = "vdd_arm"; 190 regulator-always-on; 191 regulator-boot-on; 192 regulator-min-microvolt = <712500>; 193 regulator-max-microvolt = <1450000>; 194 regulator-ramp-delay = <12500>; 195 196 regulator-state-mem { 197 regulator-on-in-suspend; 198 regulator-suspend-microvolt = <950000>; 199 }; 200 }; 201 202 vcc_ddr: DCDC_REG3 { 203 regulator-name = "vcc_ddr"; 204 regulator-always-on; 205 regulator-boot-on; 206 207 regulator-state-mem { 208 regulator-on-in-suspend; 209 }; 210 }; 211 212 vcc_io_33: DCDC_REG4 { 213 regulator-name = "vcc_io_33"; 214 regulator-always-on; 215 regulator-boot-on; 216 regulator-min-microvolt = <3300000>; 217 regulator-max-microvolt = <3300000>; 218 219 regulator-state-mem { 220 regulator-on-in-suspend; 221 regulator-suspend-microvolt = <3300000>; 222 }; 223 }; 224 225 vcc_18: LDO_REG1 { 226 regulator-name = "vcc_18"; 227 regulator-always-on; 228 regulator-boot-on; 229 regulator-min-microvolt = <1800000>; 230 regulator-max-microvolt = <1800000>; 231 232 regulator-state-mem { 233 regulator-on-in-suspend; 234 regulator-suspend-microvolt = <1800000>; 235 }; 236 }; 237 238 vcc18_emmc: LDO_REG2 { 239 regulator-name = "vcc18_emmc"; 240 regulator-always-on; 241 regulator-boot-on; 242 regulator-min-microvolt = <1800000>; 243 regulator-max-microvolt = <1800000>; 244 245 regulator-state-mem { 246 regulator-on-in-suspend; 247 regulator-suspend-microvolt = <1800000>; 248 }; 249 }; 250 251 vdd_10: LDO_REG3 { 252 regulator-name = "vdd_10"; 253 regulator-always-on; 254 regulator-boot-on; 255 regulator-min-microvolt = <1000000>; 256 regulator-max-microvolt = <1000000>; 257 258 regulator-state-mem { 259 regulator-on-in-suspend; 260 regulator-suspend-microvolt = <1000000>; 261 }; 262 }; 263 }; 264 }; 265}; 266 267&io_domains { 268 pmuio-supply = <&vcc_io_33>; 269 vccio1-supply = <&vcc_io_33>; 270 vccio2-supply = <&vcc18_emmc>; 271 vccio3-supply = <&vcc_io_sdio>; 272 vccio4-supply = <&vcc_18>; 273 vccio5-supply = <&vcc_io_33>; 274 vccio6-supply = <&vcc_io_33>; 275 status = "okay"; 276}; 277 278&pinctrl { 279 button { 280 reset_button_pin: reset-button-pin { 281 rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 282 }; 283 }; 284 285 ethernet-phy { 286 eth_phy_reset_pin: eth-phy-reset-pin { 287 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; 288 }; 289 }; 290 291 leds { 292 lan_led_pin: lan-led-pin { 293 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 294 }; 295 296 sys_led_pin: sys-led-pin { 297 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 298 }; 299 300 wan_led_pin: wan-led-pin { 301 rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 302 }; 303 }; 304 305 pmic { 306 pmic_int_l: pmic-int-l { 307 rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; 308 }; 309 }; 310 311 sd { 312 sdio_vcc_pin: sdio-vcc-pin { 313 rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; 314 }; 315 }; 316}; 317 318&pwm2 { 319 status = "okay"; 320}; 321 322&sdmmc { 323 bus-width = <4>; 324 cap-sd-highspeed; 325 disable-wp; 326 pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>; 327 pinctrl-names = "default"; 328 sd-uhs-sdr12; 329 sd-uhs-sdr25; 330 sd-uhs-sdr50; 331 sd-uhs-sdr104; 332 vmmc-supply = <&vcc_sd>; 333 vqmmc-supply = <&vcc_io_sdio>; 334 status = "okay"; 335}; 336 337&tsadc { 338 rockchip,hw-tshut-mode = <0>; 339 rockchip,hw-tshut-polarity = <0>; 340 status = "okay"; 341}; 342 343&u2phy { 344 status = "okay"; 345}; 346 347&u2phy_host { 348 status = "okay"; 349}; 350 351&u2phy_otg { 352 status = "okay"; 353}; 354 355&uart2 { 356 status = "okay"; 357}; 358 359&usb20_otg { 360 status = "okay"; 361 dr_mode = "host"; 362}; 363 364&usb_host0_ehci { 365 status = "okay"; 366}; 367 368&usb_host0_ohci { 369 status = "okay"; 370}; 371