mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00

* rockchip: refresh NanoPi R2S patches Update the patches for the NanoPi R2S to the v3 sent (and accepted) upstream. Signed-off-by: David Bauer <mail@david-bauer.net> * rockchip: rk3328: add compatible to NanoPi R2S ethernet PHY This adds the compatible property to the NanoPi R2S ethernet PHY node. Otherwise, the PHY might not be probed, as the PHY ID reads all 0xff when it is still in reset. Signed-off-by: David Bauer <mail@david-bauer.net> * uboot-rockchip: update NanoPi R2S patches Update the patches required for the NanoPi R2S to match the DTS accepted for upstream Linux. The U-Boot patch meanwhile is still pending upstream. Signed-off-by: David Bauer <mail@david-bauer.net> * rockchip: refresh target patches Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org> Co-authored-by: CN_SZTL <cnsztl@project-openwrt.eu.org> Co-authored-by: wevsty <ty@wevs.org> * rockchip: fix NanoPi R2S PHY ID Fix the PHY ID for the NanoPi R2S PHY compatible to match the used PHY. The ID was wrong as I've accidentally picked the wrong upstream patch. Signed-off-by: David Bauer <mail@david-bauer.net> Co-authored-by: David Bauer <mail@david-bauer.net> Co-authored-by: wevsty <ty@wevs.org>
405 lines
8.8 KiB
Diff
405 lines
8.8 KiB
Diff
From 0720be5371c806c1b89936984a321248fa739bea Mon Sep 17 00:00:00 2001
|
|
From: David Bauer <mail@david-bauer.net>
|
|
Date: Fri, 10 Jul 2020 15:57:46 +0200
|
|
Subject: [PATCH] rockchip: rk3328: Add support for FriendlyARM NanoPi R2S
|
|
|
|
This adds support for the NanoPi R2S from FriendlyARM.
|
|
|
|
Rockchip RK3328 SoC
|
|
1GB DDR4 RAM
|
|
Gigabit Ethernet (WAN)
|
|
Gigabit Ethernet (USB3) (LAN)
|
|
USB 2.0 Host Port
|
|
MicroSD slot
|
|
Reset button
|
|
WAN - LAN - SYS LED
|
|
|
|
Signed-off-by: David Bauer <mail@david-bauer.net>
|
|
---
|
|
arch/arm64/boot/dts/rockchip/Makefile | 1 +
|
|
.../boot/dts/rockchip/rk3328-nanopi-r2s.dts | 368 ++++++++++++++++++
|
|
2 files changed, 369 insertions(+)
|
|
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
|
|
|
|
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
|
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
|
@@ -1,6 +1,7 @@
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-evb.dtb
|
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
|
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
|
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
|
|
@@ -0,0 +1,368 @@
|
|
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
+/*
|
|
+ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+
|
|
+#include <dt-bindings/input/input.h>
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+#include "rk3328.dtsi"
|
|
+
|
|
+/ {
|
|
+ model = "FriendlyElec NanoPi R2S";
|
|
+ compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
|
|
+
|
|
+ chosen {
|
|
+ stdout-path = "serial2:1500000n8";
|
|
+ };
|
|
+
|
|
+ gmac_clk: gmac-clock {
|
|
+ compatible = "fixed-clock";
|
|
+ clock-frequency = <125000000>;
|
|
+ clock-output-names = "gmac_clk";
|
|
+ #clock-cells = <0>;
|
|
+ };
|
|
+
|
|
+ keys {
|
|
+ compatible = "gpio-keys";
|
|
+ pinctrl-0 = <&reset_button_pin>;
|
|
+ pinctrl-names = "default";
|
|
+
|
|
+ reset {
|
|
+ label = "reset";
|
|
+ gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
|
|
+ linux,code = <KEY_RESTART>;
|
|
+ debounce-interval = <50>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ leds {
|
|
+ compatible = "gpio-leds";
|
|
+ pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
|
|
+ pinctrl-names = "default";
|
|
+
|
|
+ lan_led: led-0 {
|
|
+ gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
|
|
+ label = "nanopi-r2s:green:lan";
|
|
+ };
|
|
+
|
|
+ sys_led: led-1 {
|
|
+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
|
|
+ label = "nanopi-r2s:red:sys";
|
|
+ };
|
|
+
|
|
+ wan_led: led-2 {
|
|
+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
|
|
+ label = "nanopi-r2s:green:wan";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vcc_io_sdio: sdmmcio-regulator {
|
|
+ compatible = "regulator-gpio";
|
|
+ enable-active-high;
|
|
+ gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-0 = <&sdio_vcc_pin>;
|
|
+ pinctrl-names = "default";
|
|
+ regulator-name = "vcc_io_sdio";
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-settling-time-us = <5000>;
|
|
+ regulator-type = "voltage";
|
|
+ startup-delay-us = <2000>;
|
|
+ states = <1800000 0x1
|
|
+ 3300000 0x0>;
|
|
+ vin-supply = <&vcc_io_33>;
|
|
+ };
|
|
+
|
|
+ vcc_sd: sdmmc-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
|
|
+ pinctrl-0 = <&sdmmc0m1_gpio>;
|
|
+ pinctrl-names = "default";
|
|
+ regulator-name = "vcc_sd";
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ vin-supply = <&vcc_io_33>;
|
|
+ };
|
|
+
|
|
+ vdd_5v: vdd-5v {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "vdd_5v";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cpu1 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cpu2 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cpu3 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&gmac2io {
|
|
+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
|
+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
|
+ clock_in_out = "input";
|
|
+ phy-handle = <&rtl8211e>;
|
|
+ phy-mode = "rgmii";
|
|
+ phy-supply = <&vcc_io_33>;
|
|
+ pinctrl-0 = <&rgmiim1_pins>;
|
|
+ pinctrl-names = "default";
|
|
+ rx_delay = <0x18>;
|
|
+ snps,aal;
|
|
+ tx_delay = <0x24>;
|
|
+ status = "okay";
|
|
+
|
|
+ mdio {
|
|
+ compatible = "snps,dwmac-mdio";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ rtl8211e: ethernet-phy@1 {
|
|
+ reg = <1>;
|
|
+ pinctrl-0 = <ð_phy_reset_pin>;
|
|
+ pinctrl-names = "default";
|
|
+ reset-assert-us = <10000>;
|
|
+ reset-deassert-us = <50000>;
|
|
+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&i2c1 {
|
|
+ status = "okay";
|
|
+
|
|
+ rk805: pmic@18 {
|
|
+ compatible = "rockchip,rk805";
|
|
+ reg = <0x18>;
|
|
+ interrupt-parent = <&gpio1>;
|
|
+ interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
|
|
+ #clock-cells = <1>;
|
|
+ clock-output-names = "xin32k", "rk805-clkout2";
|
|
+ gpio-controller;
|
|
+ #gpio-cells = <2>;
|
|
+ pinctrl-0 = <&pmic_int_l>;
|
|
+ pinctrl-names = "default";
|
|
+ rockchip,system-power-controller;
|
|
+ wakeup-source;
|
|
+
|
|
+ vcc1-supply = <&vdd_5v>;
|
|
+ vcc2-supply = <&vdd_5v>;
|
|
+ vcc3-supply = <&vdd_5v>;
|
|
+ vcc4-supply = <&vdd_5v>;
|
|
+ vcc5-supply = <&vcc_io_33>;
|
|
+ vcc6-supply = <&vdd_5v>;
|
|
+
|
|
+ regulators {
|
|
+ vdd_log: DCDC_REG1 {
|
|
+ regulator-name = "vdd_log";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <712500>;
|
|
+ regulator-max-microvolt = <1450000>;
|
|
+ regulator-ramp-delay = <12500>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <1000000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vdd_arm: DCDC_REG2 {
|
|
+ regulator-name = "vdd_arm";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <712500>;
|
|
+ regulator-max-microvolt = <1450000>;
|
|
+ regulator-ramp-delay = <12500>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <950000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vcc_ddr: DCDC_REG3 {
|
|
+ regulator-name = "vcc_ddr";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vcc_io_33: DCDC_REG4 {
|
|
+ regulator-name = "vcc_io_33";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <3300000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vcc_18: LDO_REG1 {
|
|
+ regulator-name = "vcc_18";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <1800000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vcc18_emmc: LDO_REG2 {
|
|
+ regulator-name = "vcc18_emmc";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <1800000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ vdd_10: LDO_REG3 {
|
|
+ regulator-name = "vdd_10";
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <1000000>;
|
|
+ regulator-max-microvolt = <1000000>;
|
|
+
|
|
+ regulator-state-mem {
|
|
+ regulator-on-in-suspend;
|
|
+ regulator-suspend-microvolt = <1000000>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&io_domains {
|
|
+ pmuio-supply = <&vcc_io_33>;
|
|
+ vccio1-supply = <&vcc_io_33>;
|
|
+ vccio2-supply = <&vcc18_emmc>;
|
|
+ vccio3-supply = <&vcc_io_sdio>;
|
|
+ vccio4-supply = <&vcc_18>;
|
|
+ vccio5-supply = <&vcc_io_33>;
|
|
+ vccio6-supply = <&vcc_io_33>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&pinctrl {
|
|
+ button {
|
|
+ reset_button_pin: reset-button-pin {
|
|
+ rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ ethernet-phy {
|
|
+ eth_phy_reset_pin: eth-phy-reset-pin {
|
|
+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ leds {
|
|
+ lan_led_pin: lan-led-pin {
|
|
+ rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ sys_led_pin: sys-led-pin {
|
|
+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ wan_led_pin: wan-led-pin {
|
|
+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ pmic {
|
|
+ pmic_int_l: pmic-int-l {
|
|
+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sd {
|
|
+ sdio_vcc_pin: sdio-vcc-pin {
|
|
+ rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&pwm2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&sdmmc {
|
|
+ bus-width = <4>;
|
|
+ cap-sd-highspeed;
|
|
+ disable-wp;
|
|
+ pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
|
|
+ pinctrl-names = "default";
|
|
+ sd-uhs-sdr12;
|
|
+ sd-uhs-sdr25;
|
|
+ sd-uhs-sdr50;
|
|
+ sd-uhs-sdr104;
|
|
+ vmmc-supply = <&vcc_sd>;
|
|
+ vqmmc-supply = <&vcc_io_sdio>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&tsadc {
|
|
+ rockchip,hw-tshut-mode = <0>;
|
|
+ rockchip,hw-tshut-polarity = <0>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&u2phy {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&u2phy_host {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&u2phy_otg {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&uart2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb20_otg {
|
|
+ status = "okay";
|
|
+ dr_mode = "host";
|
|
+};
|
|
+
|
|
+&usb_host0_ehci {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb_host0_ohci {
|
|
+ status = "okay";
|
|
+};
|