[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