* [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106
@ 2026-08-10 12:10 Vladislav Leonov
2026-08-10 12:11 ` [PATCH 09/25] dt-bindings: usb: rockchip,dwc3: add RV1106 SoC support Vladislav Leonov
2026-08-10 18:35 ` [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Jakub Kicinski
0 siblings, 2 replies; 3+ 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] 3+ messages in thread* [PATCH 09/25] dt-bindings: usb: rockchip,dwc3: add RV1106 SoC support
2026-08-10 12:10 [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Vladislav Leonov
@ 2026-08-10 12:11 ` Vladislav Leonov
2026-08-10 18:35 ` [PATCH 00/25] ARM: rockchip: Add peripheral support for RV1106 Jakub Kicinski
1 sibling, 0 replies; 3+ messages in thread
From: Vladislav Leonov @ 2026-08-10 12:11 UTC (permalink / raw)
To: linux-rockchip
Cc: linux-arm-kernel, Simon Glass, linux-clk, devicetree,
linux-kernel, Vladislav Leonov, Conor Dooley, Greg Kroah-Hartman,
Heiko Stuebner, Krzysztof Kozlowski, Rob Herring, linux-usb
Document the DWC3 USB controller found on the Rockchip RV1106 SoC.
The RV1106 has a USB2-only (high-speed) OTG controller. Unlike the
other supported SoCs it has no dedicated suspend clock: it only needs
the 24 MHz reference clock, the AXI bus clock and the UTMI clock.
Since the top-level clock-names list enforces a fixed order with
"suspend_clk" as the second entry, relax the second and third entries
to enums so that the RV1106 clock set (ref_clk, bus_clk, utmi) can be
expressed, and add a per-SoC clause constraining RV1106 to exactly
these three clocks. The relaxation is required rather than cosmetic:
every other compatible's own clause already agrees with the shared
tuple position-by-position, but RV1106 genuinely reorders it (bus_clk
before utmi, no suspend_clk), and allOf branches are ANDed, so without
loosening the shared entries the two clauses would be unsatisfiable
together.
Signed-off-by: Vladislav Leonov <vlad@zlab.su>
---
.../bindings/usb/rockchip,dwc3.yaml | 35 ++++++++++++++++---
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml b/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml
index 0554dbc4b854..86e00f251bdb 100644
--- a/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml
@@ -31,6 +31,7 @@ select:
- rockchip,rk3568-dwc3
- rockchip,rk3576-dwc3
- rockchip,rk3588-dwc3
+ - rockchip,rv1106-dwc3
required:
- compatible
@@ -44,6 +45,7 @@ properties:
- rockchip,rk3568-dwc3
- rockchip,rk3576-dwc3
- rockchip,rk3588-dwc3
+ - rockchip,rv1106-dwc3
- const: snps,dwc3
reg:
@@ -58,10 +60,11 @@ properties:
- description:
Controller reference clock, must to be 24 MHz
- description:
- Controller suspend clock, must to be 24 MHz or 32 KHz
+ Controller suspend clock (must to be 24 MHz or 32 KHz) or
+ Master/Core clock
- description:
Master/Core clock, must to be >= 62.5 MHz for SS
- operation and >= 30MHz for HS operation
+ operation and >= 30MHz for HS operation, or UTMI clock
- description:
Controller grf clock OR UTMI clock
- description:
@@ -71,8 +74,12 @@ properties:
minItems: 3
items:
- const: ref_clk
- - const: suspend_clk
- - const: bus_clk
+ - enum:
+ - suspend_clk
+ - bus_clk
+ - enum:
+ - bus_clk
+ - utmi
- enum:
- grf_clk
- utmi
@@ -145,7 +152,10 @@ allOf:
clocks:
maxItems: 3
clock-names:
- maxItems: 3
+ items:
+ - const: ref_clk
+ - const: suspend_clk
+ - const: bus_clk
- if:
properties:
compatible:
@@ -161,6 +171,21 @@ allOf:
- const: bus_clk
- const: utmi
- const: pipe
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: rockchip,rv1106-dwc3
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ items:
+ - const: ref_clk
+ - const: bus_clk
+ - const: utmi
examples:
- |
--
2.47.3
^ permalink raw reply related [flat|nested] 3+ 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:11 ` [PATCH 09/25] dt-bindings: usb: rockchip,dwc3: add RV1106 SoC support Vladislav Leonov
@ 2026-08-10 18:35 ` Jakub Kicinski
1 sibling, 0 replies; 3+ 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] 3+ messages in thread
end of thread, other threads:[~2026-08-10 18:35 UTC | newest]
Thread overview: 3+ 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:11 ` [PATCH 09/25] dt-bindings: usb: rockchip,dwc3: add RV1106 SoC 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