[PATCH v3 0/5] Add clock support for SpacemiT K3 SoC

Yixun Lan
2025-12-26T11:02:10Z

I've dropped the RFC tag as now the driver got tested on K3 SoC.

The SpacemiT K3 SoC's CCU (clock control unit) is similar to old K1 generation,
the clock and reset functionalities are distributed across several IP blocks,
therefore, we model them as several clock tree accordingly.

The PLL clocks has changed register setting layout, so introduce a PLLA type.
Some gate clocks has inverted enable/disable logic which writing 1 to disable,
while writing 0 to enable.

This patch will depend on two clock series a) fix building for modules [1],
b) refacor common ccu driver [2]

Link: https://lore.kernel.org/all/20251219012819.440972-1-inochiama@gmail.com/ [1]
Link: https://lore.kernel.org/all/20251226-06-k1-clk-common-v2-0-28b59418b4df@gentoo.org

Signed-off-by: Yixun Lan <dlan@gentoo.org>
---
Changes in v3:
- drop RFC, the driver is tested on K3 SoC
- extract common header file, shared by clock and reset
- fix reset name for auxiliary bus
- Link to v2: https://lore.kernel.org/r/20251220-k3-clk-v2-0-1297b46a7340@gentoo.org

Changes in v2:
- has dependency on ccu common patch
- fix wrong indention of DT docs
- fix kfree() missing header issue
- Link to v1: https://lore.kernel.org/r/20251211-k3-clk-v1-0-8ee47c70c5bc@gentoo.org

---
Yixun Lan (5):
dt-bindings: soc: spacemit: add k3 syscon compatible
clk: spacemit: ccu_mix: add inverted enable gate clock
clk: spacemit: ccu_pll: add plla type clock
clk: spacemit: k3: extract common header
clk: spacemit: k3: add the clock tree

.../devicetree/bindings/clock/spacemit,k1-pll.yaml | 9 +-
.../bindings/soc/spacemit/spacemit,k1-syscon.yaml | 13 +-
drivers/clk/spacemit/Kconfig | 6 +
drivers/clk/spacemit/Makefile | 3 +
drivers/clk/spacemit/ccu-k3.c | 1482 ++++++++++++++++++++
drivers/clk/spacemit/ccu_common.c | 3 +-
drivers/clk/spacemit/ccu_common.h | 1 +
drivers/clk/spacemit/ccu_mix.c | 12 +-
drivers/clk/spacemit/ccu_mix.h | 12 +
drivers/clk/spacemit/ccu_pll.c | 118 ++
drivers/clk/spacemit/ccu_pll.h | 57 +-
include/dt-bindings/clock/spacemit,k3-clocks.h | 390 ++++++
include/soc/spacemit/k3-syscon.h | 276 ++++
13 files changed, 2362 insertions(+), 20 deletions(-)
---
base-commit: 6ec25c2f81b39cbbf5e16c533e7ce3dc64a70ae8
change-id: 20251204-k3-clk-db2018389ae3
prerequisite-message-id: 20251226-06-k1-clk-common-v2-0-28b59418b4df@gentoo.org
prerequisite-patch-id: 478955b6a6ab7c82910cdd9de7caf2d8be95b99f
prerequisite-patch-id: 9d9f553c3430fa2bda0e980679efa60c46cdd8e9
prerequisite-patch-id: 50eb74bd253e779458b52b242144e79807675461
prerequisite-message-id: 20251219012819.440972-1-inochiama@gmail.com
prerequisite-patch-id: df430730ed961011cee5c5d47b7ace84b3c5ebb7
prerequisite-patch-id: 64003618c33be925602e46b7543f2c13d3f36474

Best regards,
--
Yixun Lan