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