From nobody Sun Feb 8 16:05:53 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E32727C85A for ; Thu, 6 Mar 2025 22:14:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=149.28.215.223 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299265; cv=none; b=im9CLhvF6snBOf7DVbtVBlPWVFuprpFTLuJRiUbL7B1w+XriRxGdv2iYFjRWfJSfjtzIjW8TDred+2+uSOzinEsYtZ72fByxMdKyMakp9sIPnOdngJ93uMx3dgyaYpTO5rE01UXgp6uckAnsuazao7lfibceYHJx1uPntBZaPtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299265; c=relaxed/simple; bh=qgXD7sQKiXNNgzjSwcd2sCiSO0BbnuwSHU/7CWTbDAw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WwAznIJxGDwC3czDCZ64Fn0GgxtXIuFF9smgG5bRUC1PkyaP+vA6iLzUSbjDr5MPmYasQWHb8N11wFGNNFkWvuInEDa6lE9uxfAOgIQjXpaptYR5JYP8t7wBx479ilYeYRAi2O4k5GPZtQmNPCCVxsjNJ/eS6AJiEplyQAcK93s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=W21X3bGn; arc=none smtp.client-ip=149.28.215.223 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="W21X3bGn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1741299262; bh=djmaXEsM/Omnu4PtvCIeIWrP18OoUBJglDTF0IRvmks=; b=W21X3bGnkdbcub7VoW+s3RbPy0VxUyXzw13KdULRMdGAYv3UGJetNcqxhK8qjjwWk8jXCHy69 jB49helI1J2li6SqPyIGJS3l1Z3rECOarZX+WsbySZFskuFdaGmTuKXcl9B6y4nP6bH0vDzQyl+ iQzAdR5zh3kI9qFyBO8xrEuh+YyKmvC21RfohbgyPZZtssGSVaZL86MB9Hb1ZYp+F3h+L72ona+ 4z5zRBX3JT6fsBM6cN31R7KgxXpc7Lkbh6nKRwoxdtDUMyEoB8IERK7+aVHf/XntxTsjiHSnilY S0Gc75Rco75AL4YwKt3y5zScIrSBZlMGH+jmX8OfWGCg== X-Forward-Email-ID: 67ca1e34c1763851c065bffe X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-Forward-Email-Version: 0.4.40 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Heiko Stuebner , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Wu Cc: Yao Zi , linux-rockchip@lists.infradead.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 1/4] dt-bindings: net: rockchip-dwmac: Add compatible string for RK3528 Date: Thu, 6 Mar 2025 22:13:54 +0000 Message-ID: <20250306221402.1704196-2-jonas@kwiboo.se> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250306221402.1704196-1-jonas@kwiboo.se> References: <20250306221402.1704196-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rockchip RK3528 has two Ethernet controllers based on Synopsys DWC Ethernet QoS IP. Add compatible string for the RK3528 variant. Signed-off-by: Jonas Karlman --- I was not able to restrict the minItems change to only apply to the new compatible, please advise on how to properly restrict the minItems change if needed. Also, because snps,dwmac-4.20a is already listed in snps,dwmac.yaml adding the rockchip,rk3528-gmac compatible did not seem necessary. --- Documentation/devicetree/bindings/net/rockchip-dwmac.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml b/Do= cumentation/devicetree/bindings/net/rockchip-dwmac.yaml index 05a5605f1b51..3c25b49bd78e 100644 --- a/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml +++ b/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml @@ -24,6 +24,7 @@ select: - rockchip,rk3366-gmac - rockchip,rk3368-gmac - rockchip,rk3399-gmac + - rockchip,rk3528-gmac - rockchip,rk3568-gmac - rockchip,rk3576-gmac - rockchip,rk3588-gmac @@ -49,6 +50,7 @@ properties: - rockchip,rv1108-gmac - items: - enum: + - rockchip,rk3528-gmac - rockchip,rk3568-gmac - rockchip,rk3576-gmac - rockchip,rk3588-gmac @@ -56,7 +58,7 @@ properties: - const: snps,dwmac-4.20a =20 clocks: - minItems: 5 + minItems: 4 maxItems: 8 =20 clock-names: --=20 2.48.1 From nobody Sun Feb 8 16:05:53 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C02B27CB3D for ; Thu, 6 Mar 2025 22:14:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=149.28.215.223 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299269; cv=none; b=B2VSN9P5NU1hVt4ugshTXm7Z+KBsGQq3hwZjr6e/GGl+6JlEsT3LRLDV4I1+zrOxyJDuRII94hPNX7+lbla4cjP/cnCAJBVGJ+/L/RR1ShzkaYb73vJ8zQLPAIcuJZ2UhcuSRde/NYk8zOw733rDggOs0EQlZ0wd7JlRMbWgn+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299269; c=relaxed/simple; bh=vz8P+EDskUvsrqvMhYZsE++7gY4flX7CxLvX4+hsHWg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Yin7SWe/HYLtN2jreuS76VHts/R2mzkq6hxnhdGKSAAJMSmFWQS52tmNTUofax0SMjdUSBYHXigx5kWcey4JBtAjFHtOYjSXlXE0rdu2BeM0+oEu328J7uXOYm+mIRxwEUiKFoMKBARfOr5uAOBcv6QgUvwDFvaBLo6PznzbbP8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=mXVR6pns; arc=none smtp.client-ip=149.28.215.223 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="mXVR6pns" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1741299267; bh=bOC8WbiFRMmQ2t5uzX1HETVDEhXpaqLAKBxWpaNaFx0=; b=mXVR6pnsbDv8IufD2H/qwDX3uVfK0tKwg0EvIGT1gnGNeRoL1ULLCaNZaSCYqnzUzI0MyQm2B NJ4KzYu2x1EUiQB9EANtnGRAqqhm73OyrceUqIuVyLd2ZUrXHPHXN3wr3Lrl2LADpRal6sbaQCs TRnzmPayBvYG83CKgUm8N1h73hVdSi1/ybcbtkSwjlTXxsKCwDUwWdykjnJ8dEBe31eks6Uwo1c ZaZYPTr8+1Qd66py5hQxdqJ5Sl2ThULVjQQAKBk/lrdt3t/9uHVksZb0NjiSQ34lSSeyhfT3dz9 DLX5BpoPJJjHJJyVBcKWdkKwYobHamnm3ty4QP7xBmxQ== X-Forward-Email-ID: 67ca1e39c1763851c065c013 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-Forward-Email-Version: 0.4.40 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Heiko Stuebner , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Coquelin , Alexandre Torgue Cc: Yao Zi , linux-rockchip@lists.infradead.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman , David Wu , linux-stm32@st-md-mailman.stormreply.com Subject: [PATCH 2/4] ethernet: stmmac: dwmac-rk: Add GMAC support for RK3528 Date: Thu, 6 Mar 2025 22:13:55 +0000 Message-ID: <20250306221402.1704196-3-jonas@kwiboo.se> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250306221402.1704196-1-jonas@kwiboo.se> References: <20250306221402.1704196-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Wu Rockchip RK3528 has two Ethernet controllers based on Synopsys DWC Ethernet QoS IP. Add initial support for the RK3528 variants. Signed-off-by: David Wu Signed-off-by: Jonas Karlman --- This does not include power on/off support for the integrated PHY. --- .../net/ethernet/stmicro/stmmac/dwmac-rk.c | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/e= thernet/stmicro/stmmac/dwmac-rk.c index ba1cd079adf2..0ae3ffacb794 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c @@ -830,6 +830,137 @@ static const struct rk_gmac_ops rk3399_ops =3D { .set_rmii_speed =3D rk3399_set_rmii_speed, }; =20 +#define RK3528_VO_GRF_GMAC_CON 0x0018 +#define RK3528_VO_GRF_MACPHY_CON0 0x001c +#define RK3528_VO_GRF_MACPHY_CON1 0x0020 +#define RK3528_VPU_GRF_GMAC_CON5 0x0018 +#define RK3528_VPU_GRF_GMAC_CON6 0x001c + +#define RK3528_GMAC_RXCLK_DLY_ENABLE GRF_BIT(15) +#define RK3528_GMAC_RXCLK_DLY_DISABLE GRF_CLR_BIT(15) +#define RK3528_GMAC_TXCLK_DLY_ENABLE GRF_BIT(14) +#define RK3528_GMAC_TXCLK_DLY_DISABLE GRF_CLR_BIT(14) + +#define RK3528_GMAC_CLK_RX_DL_CFG(val) HIWORD_UPDATE(val, 0xFF, 8) +#define RK3528_GMAC_CLK_TX_DL_CFG(val) HIWORD_UPDATE(val, 0xFF, 0) + +#define RK3528_GMAC0_PHY_INTF_SEL_RMII GRF_BIT(1) +#define RK3528_GMAC1_PHY_INTF_SEL_RGMII GRF_CLR_BIT(8) +#define RK3528_GMAC1_PHY_INTF_SEL_RMII GRF_BIT(8) + +#define RK3528_GMAC1_CLK_SELECT_CRU GRF_CLR_BIT(12) +#define RK3528_GMAC1_CLK_SELECT_IO GRF_BIT(12) + +#define RK3528_GMAC0_CLK_RMII_DIV2 GRF_BIT(3) +#define RK3528_GMAC0_CLK_RMII_DIV20 GRF_CLR_BIT(3) +#define RK3528_GMAC1_CLK_RMII_DIV2 GRF_BIT(10) +#define RK3528_GMAC1_CLK_RMII_DIV20 GRF_CLR_BIT(10) + +#define RK3528_GMAC1_CLK_RGMII_DIV1 (GRF_CLR_BIT(11) | GRF_CLR_BIT(10)) +#define RK3528_GMAC1_CLK_RGMII_DIV5 (GRF_BIT(11) | GRF_BIT(10)) +#define RK3528_GMAC1_CLK_RGMII_DIV50 (GRF_BIT(11) | GRF_CLR_BIT(10)) + +#define RK3528_GMAC0_CLK_RMII_GATE GRF_BIT(2) +#define RK3528_GMAC0_CLK_RMII_NOGATE GRF_CLR_BIT(2) +#define RK3528_GMAC1_CLK_RMII_GATE GRF_BIT(9) +#define RK3528_GMAC1_CLK_RMII_NOGATE GRF_CLR_BIT(9) + +static void rk3528_set_to_rgmii(struct rk_priv_data *bsp_priv, + int tx_delay, int rx_delay) +{ + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + RK3528_GMAC1_PHY_INTF_SEL_RGMII); + + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + DELAY_ENABLE(RK3528, tx_delay, rx_delay)); + + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON6, + RK3528_GMAC_CLK_RX_DL_CFG(rx_delay) | + RK3528_GMAC_CLK_TX_DL_CFG(tx_delay)); +} + +static void rk3528_set_to_rmii(struct rk_priv_data *bsp_priv) +{ + if (bsp_priv->id =3D=3D 1) + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + RK3528_GMAC1_PHY_INTF_SEL_RMII); + else + regmap_write(bsp_priv->grf, RK3528_VO_GRF_GMAC_CON, + RK3528_GMAC0_PHY_INTF_SEL_RMII | + RK3528_GMAC0_CLK_RMII_DIV2); +} + +static void rk3528_set_rgmii_speed(struct rk_priv_data *bsp_priv, int spee= d) +{ + struct device *dev =3D &bsp_priv->pdev->dev; + + if (speed =3D=3D 10) + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + RK3528_GMAC1_CLK_RGMII_DIV50); + else if (speed =3D=3D 100) + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + RK3528_GMAC1_CLK_RGMII_DIV5); + else if (speed =3D=3D 1000) + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, + RK3528_GMAC1_CLK_RGMII_DIV1); + else + dev_err(dev, "unknown speed value for RGMII! speed=3D%d", speed); +} + +static void rk3528_set_rmii_speed(struct rk_priv_data *bsp_priv, int speed) +{ + struct device *dev =3D &bsp_priv->pdev->dev; + unsigned int reg, val; + + if (speed =3D=3D 10) + val =3D bsp_priv->id =3D=3D 1 ? RK3528_GMAC1_CLK_RMII_DIV20 : + RK3528_GMAC0_CLK_RMII_DIV20; + else if (speed =3D=3D 100) + val =3D bsp_priv->id =3D=3D 1 ? RK3528_GMAC1_CLK_RMII_DIV2 : + RK3528_GMAC0_CLK_RMII_DIV2; + else { + dev_err(dev, "unknown speed value for RMII! speed=3D%d", speed); + return; + } + + reg =3D bsp_priv->id =3D=3D 1 ? RK3528_VPU_GRF_GMAC_CON5 : + RK3528_VO_GRF_GMAC_CON; + + regmap_write(bsp_priv->grf, reg, val); +} + +static void rk3528_set_clock_selection(struct rk_priv_data *bsp_priv, + bool input, bool enable) +{ + unsigned int val; + + if (bsp_priv->id =3D=3D 1) { + val =3D input ? RK3528_GMAC1_CLK_SELECT_IO : + RK3528_GMAC1_CLK_SELECT_CRU; + val |=3D enable ? RK3528_GMAC1_CLK_RMII_NOGATE : + RK3528_GMAC1_CLK_RMII_GATE; + regmap_write(bsp_priv->grf, RK3528_VPU_GRF_GMAC_CON5, val); + } else { + val =3D enable ? RK3528_GMAC0_CLK_RMII_NOGATE : + RK3528_GMAC0_CLK_RMII_GATE; + regmap_write(bsp_priv->grf, RK3528_VO_GRF_GMAC_CON, val); + } +} + +static const struct rk_gmac_ops rk3528_ops =3D { + .set_to_rgmii =3D rk3528_set_to_rgmii, + .set_to_rmii =3D rk3528_set_to_rmii, + .set_rgmii_speed =3D rk3528_set_rgmii_speed, + .set_rmii_speed =3D rk3528_set_rmii_speed, + .set_clock_selection =3D rk3528_set_clock_selection, + .regs_valid =3D true, + .regs =3D { + 0xffbd0000, /* gmac0 */ + 0xffbe0000, /* gmac1 */ + 0x0, /* sentinel */ + }, +}; + #define RK3568_GRF_GMAC0_CON0 0x0380 #define RK3568_GRF_GMAC0_CON1 0x0384 #define RK3568_GRF_GMAC1_CON0 0x0388 @@ -1816,6 +1947,7 @@ static const struct of_device_id rk_gmac_dwmac_match[= ] =3D { { .compatible =3D "rockchip,rk3366-gmac", .data =3D &rk3366_ops }, { .compatible =3D "rockchip,rk3368-gmac", .data =3D &rk3368_ops }, { .compatible =3D "rockchip,rk3399-gmac", .data =3D &rk3399_ops }, + { .compatible =3D "rockchip,rk3528-gmac", .data =3D &rk3528_ops }, { .compatible =3D "rockchip,rk3568-gmac", .data =3D &rk3568_ops }, { .compatible =3D "rockchip,rk3576-gmac", .data =3D &rk3576_ops }, { .compatible =3D "rockchip,rk3588-gmac", .data =3D &rk3588_ops }, --=20 2.48.1 From nobody Sun Feb 8 16:05:53 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 489BB27CB22 for ; Thu, 6 Mar 2025 22:14:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299267; cv=none; b=VcwENO4hLxSzY155OcdY384Z+1S7zJtuQATNICEyKovgk+swtVpaVW/5IbwnqRLg20XnmKqx42LSPZ4Une+meJkXcF3aTbkXSWRUSNpZBe/24ZUxEXG9LJ+qbksrLiOjOC8edXxBScHK7gtq9x3HwFzK/MgdsDnRTkJA7XxQKmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299267; c=relaxed/simple; bh=wCRkM354a8TxW667a3g0fsIH10ONtZ5IxZkFWyNzvLk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dPpuBglcT3BMeqnUzfydKnpfWHny+RtnwdM5G6nUGh9660O8Cj2EzG0+cJfluzvbsx6Edy9GcfcvTXQuUSpuXk7gNtOtdW72ohurCXYKVU3mjjTK1JGDORBS5xNZ8eXzTJyqfK5QSNofQzaFXsdSo5BR4e8pfEoOZ+xR7z1XgIA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=XAMeHFcS; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="XAMeHFcS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1741299265; bh=fshpc8o5qKk/aC1XdolZ+vML6RG3s5omLxYcjsXplmM=; b=XAMeHFcSQKukvZ4Etzfdfua21/VOdCAjtm0rJcusLRgdOZ+/+0MYzx+QP1ZCDQGh2X6O8KMJZ X63eLIw4bdRVCEaLFUHIVr/uKOcMGsA/lY3HYkAtwVZjq4YprCPKdsn3oncqrMbpavO+Ky3QWbT XhmNuOGKmQeZASjGtoMSu3c5xDuVpeWvfrNzCOLGQ2nig5vdwjkPdF8nfkCle4VvmpJzZOFawzX 4vu+RkvUQrxeWR/VR7glf16qFxO031pss/Ghzj392cYAKsSDtflddoL3HXTKNm7WWkcBDn4IqoM 8HK2M4gKrqMu2vMi/RsHWTtFWVfLGErS3WUrb9Crz2Mw== X-Forward-Email-ID: 67ca1e3ec1763851c065c028 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 0.4.40 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Heiko Stuebner , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Yao Zi , linux-rockchip@lists.infradead.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 3/4] arm64: dts: rockchip: Add GMAC nodes for RK3528 Date: Thu, 6 Mar 2025 22:13:56 +0000 Message-ID: <20250306221402.1704196-4-jonas@kwiboo.se> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250306221402.1704196-1-jonas@kwiboo.se> References: <20250306221402.1704196-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rockchip RK3528 has two Ethernet controllers based on Synopsys DWC Ethernet QoS IP. Add device tree nodes for the two Ethernet controllers in RK3528. Signed-off-by: Jonas Karlman --- gmac0 is missing the integrated-phy and has not been tested bacause I do not have any board that use this Ethernet controller. --- arch/arm64/boot/dts/rockchip/rk3528.dtsi | 92 ++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts= /rockchip/rk3528.dtsi index c1a71ea81e03..5940719cffec 100644 --- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi @@ -286,6 +286,98 @@ saradc: adc@ffae0000 { #io-channel-cells =3D <1>; }; =20 + gmac0: ethernet@ffbd0000 { + compatible =3D "rockchip,rk3528-gmac", "snps,dwmac-4.20a"; + reg =3D <0x0 0xffbd0000 0x0 0x10000>; + clocks =3D <&cru CLK_GMAC0_SRC>, <&cru CLK_GMAC0_RMII_50M>, + <&cru CLK_GMAC0_RX>, <&cru CLK_GMAC0_TX>, + <&cru PCLK_MAC_VO>, <&cru ACLK_MAC_VO>; + clock-names =3D "stmmaceth", "clk_mac_ref", + "mac_clk_rx", "mac_clk_tx", + "pclk_mac", "aclk_mac"; + interrupts =3D , + ; + interrupt-names =3D "macirq", "eth_wake_irq"; + resets =3D <&cru SRST_A_MAC_VO>; + reset-names =3D "stmmaceth"; + rockchip,grf =3D <&vo_grf>; + snps,axi-config =3D <&gmac0_stmmac_axi_setup>; + snps,mixed-burst; + snps,mtl-rx-config =3D <&gmac0_mtl_rx_setup>; + snps,mtl-tx-config =3D <&gmac0_mtl_tx_setup>; + snps,tso; + status =3D "disabled"; + + mdio0: mdio { + compatible =3D "snps,dwmac-mdio"; + #address-cells =3D <0x1>; + #size-cells =3D <0x0>; + }; + + gmac0_stmmac_axi_setup: stmmac-axi-config { + snps,blen =3D <0 0 0 0 16 8 4>; + snps,rd_osr_lmt =3D <8>; + snps,wr_osr_lmt =3D <4>; + }; + + gmac0_mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use =3D <1>; + queue0 {}; + }; + + gmac0_mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use =3D <1>; + queue0 {}; + }; + }; + + gmac1: ethernet@ffbe0000 { + compatible =3D "rockchip,rk3528-gmac", "snps,dwmac-4.20a"; + reg =3D <0x0 0xffbe0000 0x0 0x10000>; + clocks =3D <&cru CLK_GMAC1_SRC_VPU>, + <&cru CLK_GMAC1_RMII_VPU>, + <&cru PCLK_MAC_VPU>, + <&cru ACLK_MAC_VPU>; + clock-names =3D "stmmaceth", + "clk_mac_ref", + "pclk_mac", + "aclk_mac"; + interrupts =3D , + ; + interrupt-names =3D "macirq", "eth_wake_irq"; + resets =3D <&cru SRST_A_MAC>; + reset-names =3D "stmmaceth"; + rockchip,grf =3D <&vpu_grf>; + snps,axi-config =3D <&gmac1_stmmac_axi_setup>; + snps,mixed-burst; + snps,mtl-rx-config =3D <&gmac1_mtl_rx_setup>; + snps,mtl-tx-config =3D <&gmac1_mtl_tx_setup>; + snps,tso; + status =3D "disabled"; + + mdio1: mdio { + compatible =3D "snps,dwmac-mdio"; + #address-cells =3D <0x1>; + #size-cells =3D <0x0>; + }; + + gmac1_stmmac_axi_setup: stmmac-axi-config { + snps,blen =3D <0 0 0 0 16 8 4>; + snps,rd_osr_lmt =3D <8>; + snps,wr_osr_lmt =3D <4>; + }; + + gmac1_mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use =3D <1>; + queue0 {}; + }; + + gmac1_mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use =3D <1>; + queue0 {}; + }; + }; + sdhci: mmc@ffbf0000 { compatible =3D "rockchip,rk3528-dwcmshc", "rockchip,rk3588-dwcmshc"; --=20 2.48.1 From nobody Sun Feb 8 16:05:53 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2861E27CB22 for ; Thu, 6 Mar 2025 22:14:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299272; cv=none; b=cmcQMeO8Pe37g1SBNIiCRZma44+ChaDXPJQJ6tEUSwVRktoQBR2QIHrDQkQ2wybw4cxkNcraaj+0tHZnm+iIh8OgqjDKZZ9AhMjhooAUM3rF8qjFBNYW3HSzMfJl3GAIdrR3zRirWA9lhZEDkzdE1ADO5AP3MEHqmz9vLoBskD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741299272; c=relaxed/simple; bh=nDkDW/2G/un6ApgnlvHac6AAuH6JzuIvEoSxNoxUP48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SARP1VrgyU/EdH+YpRi5DRU+hBJ25OYwq3/BLCbdwYTMLMOw/Jf/XhlSWWV8CIiLVJb5lWYWFfH0RH71c+tASt1JTGq8pGc8WOH9wjUtE6fImZWlLYhFw5KLGojdOe7va7Wu9dEmp7mQD/l9I2/COqOELPG0sTY6XIJV+j64Yf4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=cQ3qbUZC; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="cQ3qbUZC" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1741299270; bh=Vz67m0H+Fsmm+X3vntSM32uhdrZ3/NlRzpKG4VSgLhc=; b=cQ3qbUZC8LaIyT9es7D4/2bFR6oFqkDCZhIvQ2NBuIUIIxZpPxW3VnTv3AIvRkAhX8dFGjDGQ 6doA6GQyErCD0HFMAPRJLRl0Ll3Znfuu/ZRtEt+CgdyNYIDGjotTfPDH69SFIhR8geHKtuPzI4U iuNSXw8klYZdWvO9CH8paj3brTikjIC71ASenqXMCiDbf40usRN+8ihnd2mOlynSk9EthbhmUCi bfNmKedjVvVuHSKpV4n19dlg+kR8al+A2xYqYugQDKe4cxlPKBNKEV8sGT+oHd3CrNAZUpK1jMK pFYkxOLhGh54ZDIZynREg+Pgk+0jsEFaHWca+blP8SFQ== X-Forward-Email-ID: 67ca1e42c1763851c065c03d X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 0.4.40 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Heiko Stuebner , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Yao Zi , linux-rockchip@lists.infradead.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 4/4] arm64: dts: rockchip: Enable Ethernet controller on Radxa E20C Date: Thu, 6 Mar 2025 22:13:57 +0000 Message-ID: <20250306221402.1704196-5-jonas@kwiboo.se> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250306221402.1704196-1-jonas@kwiboo.se> References: <20250306221402.1704196-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Radxa E20C has two GbE ports, LAN and WAN. The LAN port is provided using a GMAC controller and a YT8531C PHY and the WAN port is provided by an RTL8111H PCIe Ethernet controller. Enable support for the LAN port on Radxa E20C. Signed-off-by: Jonas Karlman --- .../boot/dts/rockchip/rk3528-radxa-e20c.dts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts b/arch/arm6= 4/boot/dts/rockchip/rk3528-radxa-e20c.dts index a511e2a2d4a5..61ba0471095a 100644 --- a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts +++ b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts @@ -16,6 +16,7 @@ / { compatible =3D "radxa,e20c", "rockchip,rk3528"; =20 aliases { + ethernet0 =3D &gmac1; mmc0 =3D &sdhci; mmc1 =3D &sdmmc; }; @@ -123,7 +124,36 @@ vccio_sd: regulator-vccio-sd { }; }; =20 +&gmac1 { + clock_in_out =3D "output"; + phy-handle =3D <&rgmii_phy>; + phy-mode =3D "rgmii-id"; + phy-supply =3D <&vcc_3v3>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, + <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; + status =3D "okay"; +}; + +&mdio1 { + rgmii_phy: ethernet-phy@1 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0x1>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&gmac1_rstn_l>; + reset-assert-us =3D <20000>; + reset-deassert-us =3D <100000>; + reset-gpios =3D <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + }; +}; + &pinctrl { + ethernet { + gmac1_rstn_l: gmac1-rstn-l { + rockchip,pins =3D <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + gpio-keys { user_key: user-key { rockchip,pins =3D <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; --=20 2.48.1