Re: [PATCH 0/3] clk: sunxi-ng: describe CCUs as tables, add the Allwinner B288

From: Chen-Yu Tsai

Date: Sun Nov 08 2026 - 11:51:42 EST


On Mon, Nov 9, 2026 at 12:58 AM Pablo Mazzini <pmazzini@xxxxxxxxx> wrote:
>
> sunxi-ng drivers describe each clock as a static structure, list it
> twice (ccu_clks and hw_clks) and keep a separate reset table. This adds
> a table front end: a SoC lists its clocks once, indexed by their binding
> clock ID, and the core builds the usual ccu_* clocks from that table.
> Bus resets come from the gate entries, and clocks that a SoC generation
> shares come from templates. Existing drivers and bindings are not
> affected.

I think you're going to have to give more justification. What do we gain?
What are the trade-offs? Building all the data at run-time means we end
up consuming even more memory. The tables from init time typically aren't
dropped when a driver is built as a module.


ChenYu

> The first user is the B288. Its driver is 212 lines here, against 749
> in the current style.
>
> This replaces patches 01 and 02 of the B288 series v4:
> https://lore.kernel.org/r/20261012100816.331033-1-pmazzini@xxxxxxxxx
>
> Pablo Mazzini (3):
> dt-bindings: clock: sun4i-a10-ccu: add Allwinner B288
> clk: sunxi-ng: add a table front end
> clk: sunxi-ng: add Allwinner B288 CCU driver
>
> .../clock/allwinner,sun4i-a10-ccu.yaml | 1 +
> drivers/clk/sunxi-ng/Kconfig | 5 +
> drivers/clk/sunxi-ng/Makefile | 2 +
> drivers/clk/sunxi-ng/ccu-sun8i-b288.c | 212 ++++++++
> drivers/clk/sunxi-ng/ccu-sun8i-b288.h | 11 +
> drivers/clk/sunxi-ng/ccu_table.c | 510 ++++++++++++++++++
> drivers/clk/sunxi-ng/ccu_table.h | 233 ++++++++
> include/dt-bindings/clock/sun8i-b288-ccu.h | 82 +++
> include/dt-bindings/reset/sun8i-b288-ccu.h | 45 ++
> 9 files changed, 1101 insertions(+)
> create mode 100644 drivers/clk/sunxi-ng/ccu-sun8i-b288.c
> create mode 100644 drivers/clk/sunxi-ng/ccu-sun8i-b288.h
> create mode 100644 drivers/clk/sunxi-ng/ccu_table.c
> create mode 100644 drivers/clk/sunxi-ng/ccu_table.h
> create mode 100644 include/dt-bindings/clock/sun8i-b288-ccu.h
> create mode 100644 include/dt-bindings/reset/sun8i-b288-ccu.h
>
>
> base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
> --
> 2.52.0
>
>