[PATCH v3 0/6] clk: sunxi-ng: Add a RTC CCU driver
Alexandre Belloni
alexandre.belloni at bootlin.com
Tue Feb 15 14:16:39 PST 2022
Hello,
On 02/02/2022 20:17:30-0600, Samuel Holland wrote:
> This patch series adds a CCU driver for the RTC in the H616, R329 and
> D1. The extra patch at the end of this series shows 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.
>
> 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 without
> adding this new driver, by adding them to the existing RTC clock
> provider, but I'm concerned about the complexity there, without any of
> the CCU abstraction.
>
> Changes in v3:
> - Add/fix several maxItems attributes for clocks and clock-items
> - Drop the SUNXI_CCU_MUX_HW_WITH_KEY macro, since it is no longer used.
> - Also drop the patch adding the SUNXI_CCU_MUX_DATA_WITH_GATE macro.
> - Rebase on v5.17-rc2 (CCU module support series was merged).
> - Move IOSC calibration control to prepare/unprepare operations.
> - Declare several `struct clk_init_data`s as static variables (instead
> of as anonymous) so they can be modified from the probe function
> without casting away const.
> - Instead of creating two copies of clocks which may or may not have
> muxes, change the number of parents to 1 in the non-mux case.
> - Use a single CCU description for all variants.
> - Use IS_REACHABLE to guard the call to sun6i_rtc_ccu_probe.
> - Allow the driver to be built on !ARM64 (i.e. RISCV).
> - Rebase example on top of driver changes, and drop the second example.
>
> Changes in v2:
> - Combine "const"s to "enum" in the DT binding compatible property.
> - Properly update the DT binding clocks and clock-names properties.
> - Rebase on v2 of the CCU module support series.
> - Load the CCU driver from the RTC driver, not as an OF provider.
>
> Samuel Holland (6):
> dt-bindings: rtc: sun6i: Clean up repetition
> dt-bindings: rtc: sun6i: Add H616, R329, and D1 support
> rtc: sun6i: Enable the bus clock when provided
I've now applied 1-3/6, thanks!
> clk: sunxi-ng: mux: Allow muxes to have keys
> clk: sunxi-ng: Add support for the sun6i RTC clocks
> [DO NOT MERGE] clk: sunxi-ng: sun6i-rtc: Add support for H6
>
> .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 84 +++-
> drivers/clk/sunxi-ng/Kconfig | 5 +
> drivers/clk/sunxi-ng/Makefile | 2 +
> drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 393 ++++++++++++++++++
> drivers/clk/sunxi-ng/ccu-sun6i-rtc.h | 15 +
> drivers/clk/sunxi-ng/ccu_common.h | 1 +
> drivers/clk/sunxi-ng/ccu_mux.c | 7 +
> drivers/rtc/rtc-sun6i.c | 48 ++-
> include/dt-bindings/clock/sun6i-rtc.h | 10 +
> include/linux/clk/sunxi-ng.h | 2 +
> 10 files changed, 538 insertions(+), 29 deletions(-)
> create mode 100644 drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
> create mode 100644 drivers/clk/sunxi-ng/ccu-sun6i-rtc.h
> create mode 100644 include/dt-bindings/clock/sun6i-rtc.h
>
> --
> 2.33.1
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the linux-arm-kernel
mailing list