This patch series adds a CCU driver for the RTC in the H616 and R329. The extra patches at the end of this series show how it would be explanded to additional hardware variants. The driver is intended to support the existing binding used for the H6, but also an updated binding which includes all RTC input clocks. I do not know how to best represent that binding -- that is a major reason why this series is an RFC. A future patch series could add functionality to the driver to manage IOSC calibration at boot and during suspend/resume. It may be possible to support all of these hardware variants in the existing RTC clock driver and avoid some duplicate code, but I'm concerned about the complexity there, without any of the CCU abstraction. This series is currently based on top of the other series I just sent (clk: sunxi-ng: Lifetime fixes and module support), but I can rebase it elsewhere. Samuel Holland (7): dt-bindings: rtc: sun6i: Add H616 and R329 compatibles clk: sunxi-ng: div: Add macro using CLK_HW_INIT_FW_NAME clk: sunxi-ng: mux: Add macro using CLK_HW_INIT_PARENTS_DATA clk: sunxi-ng: mux: Allow muxes to have keys clk: sunxi-ng: Add support for the sun50i RTC clocks [DO NOT MERGE] clk: sunxi-ng: Add support for H6 [DO NOT MERGE] clk: sunxi-ng: Add support for T5 .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 55 ++- drivers/clk/sunxi-ng/Kconfig | 6 + drivers/clk/sunxi-ng/Makefile | 1 + drivers/clk/sunxi-ng/ccu_common.h | 1 + drivers/clk/sunxi-ng/ccu_div.h | 14 + drivers/clk/sunxi-ng/ccu_mux.c | 7 + drivers/clk/sunxi-ng/ccu_mux.h | 28 ++ drivers/clk/sunxi-ng/sun50i-rtc-ccu.c | 433 ++++++++++++++++++ drivers/clk/sunxi-ng/sun50i-rtc-ccu.h | 15 + drivers/rtc/rtc-sun6i.c | 17 - include/dt-bindings/clock/sun50i-rtc.h | 12 + 11 files changed, 566 insertions(+), 23 deletions(-) create mode 100644 drivers/clk/sunxi-ng/sun50i-rtc-ccu.c create mode 100644 drivers/clk/sunxi-ng/sun50i-rtc-ccu.h create mode 100644 include/dt-bindings/clock/sun50i-rtc.h -- 2.31.1