2023-12-02 12:42:17

by Alex Bee

[permalink] [raw]
Subject: [PATCH v2 0/2] Add GMAC for RK3128

RK3128's GMAC is already supported by the Rockchip's glue for dwmac
driver, so this series basically adds the respective nodes in the SoC DT
and the enablements for XPI-3128 board.

Note: These patches are based on maintainers repo.

Changes in v2:
- use phy reset-timings according to the datasheet
- added rx-fifo-depth and rx-fifo-depth for gmac

Alex Bee (2):
ARM: dts: rockchip: Add gmac node for RK3128
ARM: dts: rockchip: Enable gmac for XPI-3128

.../arm/boot/dts/rockchip/rk3128-xpi-3128.dts | 28 +++++++++++++++++++
arch/arm/boot/dts/rockchip/rk3128.dtsi | 28 +++++++++++++++++++
2 files changed, 56 insertions(+)


base-commit: fd610e604837936440ef7c64ab6998b004631647
--
2.43.0


2023-12-02 12:42:30

by Alex Bee

[permalink] [raw]
Subject: [PATCH v2 2/2] ARM: dts: rockchip: Enable gmac for XPI-3128

Add the required properties and enable the gmac node for XPI-3128 board.

The minimum reset timing requirements for the phy have been taken from
DP83848J's datasheet [0]

[0] https://www.ti.com/lit/ds/symlink/dp83848j.pdf

Signed-off-by: Alex Bee <[email protected]>
---
.../arm/boot/dts/rockchip/rk3128-xpi-3128.dts | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)

diff --git a/arch/arm/boot/dts/rockchip/rk3128-xpi-3128.dts b/arch/arm/boot/dts/rockchip/rk3128-xpi-3128.dts
index 61b9f069c8a2..e979425f11a0 100644
--- a/arch/arm/boot/dts/rockchip/rk3128-xpi-3128.dts
+++ b/arch/arm/boot/dts/rockchip/rk3128-xpi-3128.dts
@@ -11,6 +11,7 @@ / {
compatible = "geniatech,xpi-3128", "rockchip,rk3128";

aliases {
+ ethernet0 = &gmac;
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
@@ -255,6 +256,18 @@ &emmc {
status = "okay";
};

+&gmac {
+ clock_in_out = "output";
+ phy-supply = <&vcc_lan>;
+ phy-mode = "rmii";
+ phy-handle = <&phy0>;
+ assigned-clocks = <&cru SCLK_MAC_SRC>;
+ assigned-clock-rates= <50000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rmii_pins>;
+ status = "okay";
+};
+
&gpio0 {
gpio-line-names = /* GPIO0 A0-A7 */
"", "", "HEADER_5", "HEADER_3",
@@ -315,6 +328,21 @@ &gpio3 {
"", "", "", "";
};

+&mdio {
+ phy0: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ max-speed = <100>;
+ /* T2.2.4 min. 1 us */
+ reset-assert-us = <10>;
+ /* T2.2.1 + T2.2.2 + T2.2.3 min. 6.05 us */
+ reset-deassert-us = <20>;
+ reset-gpios = <&gpio2 RK_PD0 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&dp83848c_rst>;
+ };
+};
+
&pinctrl {
dp83848c {
dp83848c_rst: dp83848c-rst {
--
2.43.0

2023-12-02 12:42:31

by Alex Bee

[permalink] [raw]
Subject: [PATCH v2 1/2] ARM: dts: rockchip: Add gmac node for RK3128

RK3128's gmac is based on Synopsys Ethernet GMAC IP core.
Add it to the devicetree.

Signed-off-by: Alex Bee <[email protected]>
---
arch/arm/boot/dts/rockchip/rk3128.dtsi | 28 ++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

diff --git a/arch/arm/boot/dts/rockchip/rk3128.dtsi b/arch/arm/boot/dts/rockchip/rk3128.dtsi
index 4e8b38604ecd..c0c9f0eaffa3 100644
--- a/arch/arm/boot/dts/rockchip/rk3128.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3128.dtsi
@@ -525,6 +525,34 @@ pdma: dma-controller@20078000 {
#dma-cells = <1>;
};

+ gmac: ethernet@2008c000 {
+ compatible = "rockchip,rk3128-gmac";
+ reg = <0x2008c000 0x4000>;
+ interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "macirq", "eth_wake_irq";
+ clocks = <&cru SCLK_MAC>,
+ <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
+ <&cru SCLK_MAC_REF>, <&cru SCLK_MAC_REFOUT>,
+ <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
+ clock-names = "stmmaceth",
+ "mac_clk_rx", "mac_clk_tx",
+ "clk_mac_ref", "clk_mac_refout",
+ "aclk_mac", "pclk_mac";
+ resets = <&cru SRST_GMAC>;
+ reset-names = "stmmaceth";
+ rockchip,grf = <&grf>;
+ rx-fifo-depth = <4096>;
+ tx-fifo-depth = <2048>;
+ status = "disabled";
+
+ mdio: mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ };
+ };
+
pinctrl: pinctrl {
compatible = "rockchip,rk3128-pinctrl";
rockchip,grf = <&grf>;
--
2.43.0

2023-12-02 16:36:51

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH v2 0/2] Add GMAC for RK3128

On Sat, 2 Dec 2023 13:41:57 +0100, Alex Bee wrote:
> RK3128's GMAC is already supported by the Rockchip's glue for dwmac
> driver, so this series basically adds the respective nodes in the SoC DT
> and the enablements for XPI-3128 board.
>
> Note: These patches are based on maintainers repo.
>
> Changes in v2:
> - use phy reset-timings according to the datasheet
> - added rx-fifo-depth and rx-fifo-depth for gmac
>
> [...]

Applied, thanks!

[1/2] ARM: dts: rockchip: Add gmac node for RK3128
commit: 3d880c31d40d30328cb550523adadf1466e7c686
[2/2] ARM: dts: rockchip: Enable gmac for XPI-3128
commit: b47c0b9ed3eb31c8efb8f8be3bca32d6ced5fd52

Best regards,
--
Heiko Stuebner <[email protected]>