[PATCH 0/4] clk / clocksource: Add Ingenic X1600 SoC support

From: H. Nikolaus Schaller

Date: Sun Oct 25 2026 - 15:20:36 EST


PATCH V1 2026-10-25 20:18:26:
This patch series introduces hardware support for the Clock Generation Unit
(CGU) and the Timer Clock Unit (TCU) found in the Ingenic X1600 SoC.
To achieve this cleanly, the common Ingenic clock and timer infrastructure
is modernized and parameterized.

As a side effect of making the core structures flexible enough to handle
the architectural layout of the X1600, it became straightforward to fully
integrate support for the legacy JZ4730 SoC later.

The series is structured as follows:

Patch 1: Adds the device tree bindings and clock definitions for the X1600,
incorporating the specific I2S handling, routing, and RX/TX gates.

Patch 2: Implements the Ingenic X1600 CGU clock driver. It updates the common
CGU core framework to support secondary post-VCO dividers (OD1),
and bypasses the lack of compound divider support via explicit
mdiv/nddiv handling for the I2S clocks.

Patch 3&4: Adapt the existing JZ4760 and X1000 CGU drivers to match the expanded
signature of the calc_m_n_od() callback from Patch 2, preventing
compilation breakages.

The changes have been successfully tested on CI20 (JZ4780), LX16 (X1600).
And on LX20 (X2000), LX26 (X2600) boards (with additional, specific patches).


H. Nikolaus Schaller (3):
dt-bindings: clock: Add Ingenic X1600 CGU bindings
clk: ingenic: jz4760-cgu: Adapt calc_m_n_od() to core framework
changes
clk: ingenic: x1000-cgu: Adapt calc_m_n_od() to core framework changes

Paul Boddie (1):
clk: ingenic: Add Ingenic X1600 CGU clock driver support

.../bindings/clock/ingenic,cgu.yaml | 2 +
drivers/clk/ingenic/Kconfig | 10 +
drivers/clk/ingenic/Makefile | 1 +
drivers/clk/ingenic/cgu.c | 150 ++++--
drivers/clk/ingenic/cgu.h | 42 +-
drivers/clk/ingenic/jz4760-cgu.c | 3 +-
drivers/clk/ingenic/x1000-cgu.c | 3 +-
drivers/clk/ingenic/x1600-cgu.c | 476 ++++++++++++++++++
include/dt-bindings/clock/ingenic,x1600-cgu.h | 64 +++
9 files changed, 716 insertions(+), 35 deletions(-)
create mode 100644 drivers/clk/ingenic/x1600-cgu.c
create mode 100644 include/dt-bindings/clock/ingenic,x1600-cgu.h

--
2.56.0