[PATCH v2 0/9] clk: sunxi-ng: Add a RTC CCU driver

Samuel Holland samuel at sholland.org
Tue Sep 28 01:03:26 PDT 2021


This patch series adds a CCU driver for the RTC in the H616, R329 and
D1. 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.

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
("[PATCH v2 0/4] clk: sunxi-ng: Module support"), but I can rebase it
elsewhere.

Changes since v1:
  - Rebase on v2 of the module support series.
  - Combine "const"s to "enum" in the DT binding compatible property.
  - Properly update the DT binding clocks and clock-names properties.
  - Load the CCU driver from the RTC driver, not as an OF provider.

Samuel Holland (9):
  dt-bindings: rtc: sun6i: Clean up repetition
  dt-bindings: rtc: sun6i: Add H616, R329, and D1 support
  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
  rtc: sun6i: Allow probing without an early clock provider
  clk: sunxi-ng: Add support for the sun6i RTC clocks
  [DO NOT MERGE] clk: sunxi-ng: sun6i-rtc: Add support for H6
  [DO NOT MERGE] clk: sunxi-ng: sun6i-rtc: Add support for T5

 .../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          | 467 ++++++++++++++++++
 drivers/clk/sunxi-ng/ccu-sun6i-rtc.h          |  16 +
 drivers/clk/sunxi-ng/ccu_common.h             |   1 +
 drivers/clk/sunxi-ng/ccu_div.h                |  14 +
 drivers/clk/sunxi-ng/ccu_gate.c               |   3 +
 drivers/clk/sunxi-ng/ccu_mux.c                |   7 +
 drivers/clk/sunxi-ng/ccu_mux.h                |  28 ++
 drivers/rtc/rtc-sun6i.c                       |  35 +-
 include/dt-bindings/clock/sun6i-rtc.h         |  10 +
 include/linux/clk/sunxi-ng.h                  |   9 +
 13 files changed, 648 insertions(+), 33 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.31.1




More information about the linux-arm-kernel mailing list