* [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106
@ 2026-08-10 12:10 Vladislav Leonov
2026-08-10 12:10 ` [PATCH 04/25] dt-bindings: net: rockchip-dwmac: add RV1106 compatible Vladislav Leonov
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Vladislav Leonov @ 2026-08-10 12:10 UTC (permalink / raw)
To: linux-rockchip
Cc: linux-arm-kernel, Simon Glass, linux-clk, devicetree,
linux-kernel, Vladislav Leonov, Alexandre Torgue, Andi Shyti,
Andrew Lunn, Aurelien Jarno, Brian Masney, Conor Dooley,
Daniel Golle, David S. Miller, David Wu, Eric Dumazet,
Greg Kroah-Hartman, Heiko Stuebner, Herbert Xu, Jakub Kicinski,
Krzysztof Kozlowski, Mark Brown, Maxime Chevallier,
Maxime Coquelin, Michael Turquette, Neil Armstrong,
Nicolas Frattaroli, Olivia Mackall, Paolo Abeni, Philipp Zabel,
Rob Herring, Stephen Boyd, Uwe Kleine-König, Vinod Koul,
linux-crypto, linux-i2c, linux-phy, linux-pwm, linux-spi,
linux-stm32, linux-usb, netdev
Basic support for the Rockchip RV1106/RV1103 SoCs currently under review.
This series builds on top of that and enables the peripherals needed to
bring up a board beyond a serial console:
- CRU reset controller support (dt-bindings + clk driver), needed
by most of the other peripherals below.
- Ethernet (GMAC) via dwmac-rk.
- USB2 PHY and USB3-OTG (DWC3).
- I2C (rk3x).
- DMA (PL330) + support DMA for the UART nodes.
- SPI, including a new SCLK_IN_SPI1 clock gate.
- RNG.
- SDMMC1.
- A dts-only quirk (arm,cpu-registers-not-fw-configured) needed on
the ARM timer node when booting without a secure firmware that
pre-configures the CPU timer registers.
- PWM.
Each new dt-binding is added ahead of the driver and dts nodes that
depend on it, so the series bisects cleanly.
This series depends on:
- "Add support for the Rockchip RV1106 and RV1103" (v3)
https://lore.kernel.org/all/20260729133609.3465563-1-sjg@chromium.org
- "pinctrl: Add support for the Rockchip RV1106" (v3)
https://lore.kernel.org/all/20260729132736.3807082-1-sjg@chromium.org
Testing: boot-tested on custom RV1106 board, with every peripheral
touched by this series: reset/CRU, Ethernet, USB2 PHY/USB3 DWC3,
I2C, DMA+UART, SPI, RNG, SDMMC1 and PWM - exercised and confirmed working.
Vladislav Leonov (25):
dt-bindings: reset: Add RV1106 CRU reset definitions
clk: rockchip: Add reset controller support for RV1106
ARM: dts: rockchip: Add reset bindings to RV1106
dt-bindings: net: rockchip-dwmac: add RV1106 compatible
net: ethernet: stmicro: stmmac: dwmac-rk: Add RV1106 support
ARM: dts: rockchip: Add Ethernet GMAC node for RV1106
dt-bindings: phy: rockchip,inno-usb2phy: Add RV1106 compatible
phy: rockchip: inno-usb2: Add support for RV1106
dt-bindings: usb: rockchip,dwc3: add RV1106 SoC support
ARM: dts: rockchip: Add USB2 PHY and USB3-OTG (DWC3) nodes for RV1106
dt-bindings: i2c: rk3x: Add RV1106 compatible
ARM: dts: rockchip: Add I2C nodes for RV1106
ARM: dts: rockchip: Add DMAC node for RV1106
ARM: dts: rockchip: Add DMA support to UART nodes
dt-bindings: clock: rockchip: Add SCLK_IN_SPI1 for RV1106
clk: rockchip: Add SCLK_IN_SPI1 gate for RV1106
dt-bindings: spi: rockchip: Add RV1106 compatible
spi: rockchip: Add support for RV1106
ARM: dts: rockchip: Add SPI nodes for RV1106
dt-bindings: rng: rockchip: Add RV1106 compatible
ARM: dts: rockchip: Add RNG node for RV1106
ARM: dts: rockchip: Add SDMMC1 node for RV1106
ARM: dts: rockchip: add arm,cpu-registers-not-fw-configured to RV1106
timer node
dt-bindings: pwm: rockchip: Add RV1106 compatible
ARM: dts: rockchip: Add PWM nodes for RV1106
.../devicetree/bindings/i2c/i2c-rk3x.yaml | 1 +
.../bindings/net/rockchip-dwmac.yaml | 2 +
.../bindings/phy/rockchip,inno-usb2phy.yaml | 9 +-
.../devicetree/bindings/pwm/pwm-rockchip.yaml | 8 +
.../bindings/rng/rockchip,rk3588-rng.yaml | 11 +-
.../devicetree/bindings/spi/spi-rockchip.yaml | 5 +
.../bindings/usb/rockchip,dwc3.yaml | 35 +-
arch/arm/boot/dts/rockchip/rv1106.dtsi | 426 ++++++++++++++++++
drivers/clk/rockchip/Makefile | 2 +-
drivers/clk/rockchip/clk-rv1106.c | 4 +
drivers/clk/rockchip/clk.h | 1 +
drivers/clk/rockchip/rst-rv1106.c | 340 ++++++++++++++
.../net/ethernet/stmicro/stmmac/dwmac-rk.c | 55 +++
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 76 ++++
drivers/spi/spi-rockchip.c | 1 +
.../dt-bindings/clock/rockchip,rv1106-cru.h | 2 +
.../dt-bindings/reset/rockchip,rv1106-cru.h | 305 +++++++++++++
17 files changed, 1272 insertions(+), 11 deletions(-)
create mode 100644 drivers/clk/rockchip/rst-rv1106.c
create mode 100644 include/dt-bindings/reset/rockchip,rv1106-cru.h
---
base-commit: ac414f5eda0814030636177593400acdacfe5e1e
branch: rv1106
--
2.47.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 04/25] dt-bindings: net: rockchip-dwmac: add RV1106 compatible
2026-08-10 12:10 [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Vladislav Leonov
@ 2026-08-10 12:10 ` Vladislav Leonov
2026-08-10 12:10 ` [PATCH 05/25] net: ethernet: stmicro: stmmac: dwmac-rk: Add RV1106 support Vladislav Leonov
2026-08-10 18:35 ` [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Jakub Kicinski
2 siblings, 0 replies; 4+ messages in thread
From: Vladislav Leonov @ 2026-08-10 12:10 UTC (permalink / raw)
To: linux-rockchip
Cc: linux-arm-kernel, Simon Glass, linux-clk, devicetree,
linux-kernel, Vladislav Leonov, Andrew Lunn, Conor Dooley,
David S. Miller, David Wu, Eric Dumazet, Heiko Stuebner,
Jakub Kicinski, Krzysztof Kozlowski, Paolo Abeni, Rob Herring,
netdev
Add compatible string for RV1106 gmac, and constrain it to
be compatible with Synopsys dwmac 4.20a.
Signed-off-by: Vladislav Leonov <vlad@zlab.su>
---
Documentation/devicetree/bindings/net/rockchip-dwmac.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml b/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml
index 80c252845349..65eee45f7d7e 100644
--- a/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml
@@ -29,6 +29,7 @@ select:
- rockchip,rk3568-gmac
- rockchip,rk3576-gmac
- rockchip,rk3588-gmac
+ - rockchip,rv1106-gmac
- rockchip,rv1108-gmac
- rockchip,rv1126-gmac
required:
@@ -56,6 +57,7 @@ properties:
- rockchip,rk3568-gmac
- rockchip,rk3576-gmac
- rockchip,rk3588-gmac
+ - rockchip,rv1106-gmac
- rockchip,rv1126-gmac
- const: snps,dwmac-4.20a
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 05/25] net: ethernet: stmicro: stmmac: dwmac-rk: Add RV1106 support
2026-08-10 12:10 [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Vladislav Leonov
2026-08-10 12:10 ` [PATCH 04/25] dt-bindings: net: rockchip-dwmac: add RV1106 compatible Vladislav Leonov
@ 2026-08-10 12:10 ` Vladislav Leonov
2026-08-10 18:35 ` [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Jakub Kicinski
2 siblings, 0 replies; 4+ messages in thread
From: Vladislav Leonov @ 2026-08-10 12:10 UTC (permalink / raw)
To: linux-rockchip
Cc: linux-arm-kernel, Simon Glass, linux-clk, devicetree,
linux-kernel, Vladislav Leonov, Alexandre Torgue, Andrew Lunn,
David S. Miller, Eric Dumazet, Heiko Stuebner, Jakub Kicinski,
Maxime Chevallier, Maxime Coquelin, Paolo Abeni, linux-stm32,
netdev
Rockchip RV1106 GMAC 10/100 ethernet controller.
Signed-off-by: Vladislav Leonov <vlad@zlab.su>
---
.../net/ethernet/stmicro/stmmac/dwmac-rk.c | 55 +++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 8d7042e68926..a1bf545467cc 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1034,6 +1034,60 @@ static const struct rk_gmac_ops rk3588_ops = {
},
};
+#define RV1106_VOGRF_GMAC_CLK_CON 0X60004
+
+#define RV1106_VOGRF_MACPHY_RMII_MODE GRF_BIT(0)
+#define RV1106_VOGRF_GMAC_CLK_RMII_DIV2 GRF_BIT(2)
+#define RV1106_VOGRF_GMAC_CLK_RMII_DIV20 GRF_CLR_BIT(2)
+
+#define RV1106_VOGRF_MACPHY_CON0 0X60028
+
+static void rv1106_set_to_rmii(struct rk_priv_data *bsp_priv)
+{
+ regmap_write(bsp_priv->grf, RV1106_VOGRF_GMAC_CLK_CON,
+ RV1106_VOGRF_MACPHY_RMII_MODE |
+ RV1106_VOGRF_GMAC_CLK_RMII_DIV2);
+}
+
+static int rv1106_set_speed(struct rk_priv_data *bsp_priv,
+ phy_interface_t interface, int speed)
+{
+ unsigned int val;
+
+ if (interface != PHY_INTERFACE_MODE_RMII)
+ return 0;
+
+ if (speed == SPEED_10)
+ val = RV1106_VOGRF_GMAC_CLK_RMII_DIV20;
+ else if (speed == SPEED_100)
+ val = RV1106_VOGRF_GMAC_CLK_RMII_DIV2;
+ else
+ return -EINVAL;
+
+ regmap_write(bsp_priv->grf, RV1106_VOGRF_GMAC_CLK_CON, val);
+
+ return 0;
+}
+
+static void rv1106_integrated_phy_powerup(struct rk_priv_data *bsp_priv)
+{
+ rk_gmac_integrated_fephy_powerup(bsp_priv, RV1106_VOGRF_MACPHY_CON0);
+}
+
+static void rv1106_integrated_phy_powerdown(struct rk_priv_data *bsp_priv)
+{
+ rk_gmac_integrated_fephy_powerdown(bsp_priv, RV1106_VOGRF_MACPHY_CON0);
+}
+
+static const struct rk_gmac_ops rv1106_ops = {
+ .set_to_rmii = rv1106_set_to_rmii,
+ .set_speed = rv1106_set_speed,
+ .integrated_phy_powerup = rv1106_integrated_phy_powerup,
+ .integrated_phy_powerdown = rv1106_integrated_phy_powerdown,
+
+ .supports_rmii = true,
+};
+
#define RV1108_GRF_GMAC_CON0 0X0900
/* RV1108_GRF_GMAC_CON0 */
@@ -1628,6 +1682,7 @@ static const struct of_device_id rk_gmac_dwmac_match[] = {
{ .compatible = "rockchip,rk3568-gmac", .data = &rk3568_ops },
{ .compatible = "rockchip,rk3576-gmac", .data = &rk3576_ops },
{ .compatible = "rockchip,rk3588-gmac", .data = &rk3588_ops },
+ { .compatible = "rockchip,rv1106-gmac", .data = &rv1106_ops },
{ .compatible = "rockchip,rv1108-gmac", .data = &rv1108_ops },
{ .compatible = "rockchip,rv1126-gmac", .data = &rv1126_ops },
{ }
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106
2026-08-10 12:10 [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Vladislav Leonov
2026-08-10 12:10 ` [PATCH 04/25] dt-bindings: net: rockchip-dwmac: add RV1106 compatible Vladislav Leonov
2026-08-10 12:10 ` [PATCH 05/25] net: ethernet: stmicro: stmmac: dwmac-rk: Add RV1106 support Vladislav Leonov
@ 2026-08-10 18:35 ` Jakub Kicinski
2 siblings, 0 replies; 4+ messages in thread
From: Jakub Kicinski @ 2026-08-10 18:35 UTC (permalink / raw)
To: Vladislav Leonov
Cc: linux-rockchip, linux-arm-kernel, Simon Glass, linux-clk,
devicetree, linux-kernel, Alexandre Torgue, Andi Shyti,
Andrew Lunn, Aurelien Jarno, Brian Masney, Conor Dooley,
Daniel Golle, David S. Miller, David Wu, Eric Dumazet,
Greg Kroah-Hartman, Heiko Stuebner, Herbert Xu,
Krzysztof Kozlowski, Mark Brown, Maxime Chevallier,
Maxime Coquelin, Michael Turquette, Neil Armstrong,
Nicolas Frattaroli, Olivia Mackall, Paolo Abeni, Philipp Zabel,
Rob Herring, Stephen Boyd, Uwe Kleine-König, Vinod Koul,
linux-crypto, linux-i2c, linux-phy, linux-pwm, linux-spi,
linux-stm32, linux-usb, netdev
On Mon, 10 Aug 2026 15:10:51 +0300 Vladislav Leonov wrote:
> Basic support for the Rockchip RV1106/RV1103 SoCs currently under review.
> This series builds on top of that and enables the peripherals needed to
> bring up a board beyond a serial console:
Don't expect maintainers to dig out patches for their subsystems
from a big series. This is not how upstream development works.
Repost 4+5 as a separate series to networking..
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-10 18:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10 12:10 [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Vladislav Leonov
2026-08-10 12:10 ` [PATCH 04/25] dt-bindings: net: rockchip-dwmac: add RV1106 compatible Vladislav Leonov
2026-08-10 12:10 ` [PATCH 05/25] net: ethernet: stmicro: stmmac: dwmac-rk: Add RV1106 support Vladislav Leonov
2026-08-10 18:35 ` [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox