diff mbox series

arm64: rockchip: dts: rk3328-rock-pi-e: enable GbE eth

Message ID 20231221062244.11871-1-twoerner@gmail.com (mailing list archive)
State New, archived
Headers show
Series arm64: rockchip: dts: rk3328-rock-pi-e: enable GbE eth | expand

Commit Message

Trevor Woerner Dec. 21, 2023, 6:22 a.m. UTC
Adjust the device-tree to get the GbE interface working using a patch found
on the Radxa forum.

Link: https://forum.radxa.com/t/rock-pi-e-board-version-1-21-ethhernet-not-working-in-armbian/15061/3
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

Comments

Heiko Stuebner Dec. 24, 2023, 6:59 p.m. UTC | #1
Hi Trevor,

Am Donnerstag, 21. Dezember 2023, 07:22:43 CET schrieb Trevor Woerner:
> Adjust the device-tree to get the GbE interface working using a patch found
> on the Radxa forum.
> 
> Link: https://forum.radxa.com/t/rock-pi-e-board-version-1-21-ethhernet-not-working-in-armbian/15061/3
> Signed-off-by: Trevor Woerner <twoerner@gmail.com>
> ---

> @@ -165,15 +165,17 @@ mdio {
>  		#address-cells = <1>;
>  		#size-cells = <0>;
>  
> -		rtl8211e: ethernet-phy@1 {
> +		rtl8211f: ethernet-phy@1 {
> +			compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";

skipping through that thread, it looks like there are variants of the
board with one of the rtl8211e _or_ rtl8211f phys.

So while the "ethernet-phy-ieee802.3-c22" compatible would work for both,
the "ethernet-phy-id001c.c916" compat effectively disables phy- probing.
So applying this patch would effectively disable ethernet support on those
older rock-pi-e boards?

In a similar context concerning boards using different phys, it was
suggested [0] that the bootloader should modify the dt it passes to the
kernel to provide the correct phy id.


>  			reg = <1>;
>  			pinctrl-0 = <&eth_phy_int_pin>, <&eth_phy_reset_pin>;
>  			pinctrl-names = "default";
>  			interrupt-parent = <&gpio1>;
>  			interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> -			reset-assert-us = <10000>;
> -			reset-deassert-us = <50000>;
> +			reset-assert-us = <20000>;
> +			reset-deassert-us = <100000>;

I guess for those we can consolidate onto the "slower" ones in the kernel though.


>  			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
> +			max-speed = <1000>;
>  		};
>  	};
>  };
> 


Heiko

[0] https://lore.kernel.org/all/ecbdcfb7-32ab-45cc-991a-982c52bf4b14@gmail.com/
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
index 3cda6c627b68..41224a222048 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
@@ -148,7 +148,7 @@  &gmac2io {
 	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
 	clock_in_out = "input";
-	phy-handle = <&rtl8211e>;
+	phy-handle = <&rtl8211f>;
 	phy-mode = "rgmii";
 	phy-supply = <&vcc_io>;
 	pinctrl-names = "default";
@@ -156,8 +156,8 @@  &gmac2io {
 	snps,aal;
 	snps,rxpbl = <0x4>;
 	snps,txpbl = <0x4>;
-	tx_delay = <0x26>;
-	rx_delay = <0x11>;
+	tx_delay = <0x1a>;
+	rx_delay = <0x14>;
 	status = "okay";
 
 	mdio {
@@ -165,15 +165,17 @@  mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		rtl8211e: ethernet-phy@1 {
+		rtl8211f: ethernet-phy@1 {
+			compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
 			reg = <1>;
 			pinctrl-0 = <&eth_phy_int_pin>, <&eth_phy_reset_pin>;
 			pinctrl-names = "default";
 			interrupt-parent = <&gpio1>;
 			interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
-			reset-assert-us = <10000>;
-			reset-deassert-us = <50000>;
+			reset-assert-us = <20000>;
+			reset-deassert-us = <100000>;
 			reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
+			max-speed = <1000>;
 		};
 	};
 };