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
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
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
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]>