[PATCH v5 0/5] clk: shmobile: Add new CPG/MSSR driver

From: Geert Uytterhoeven
Date: Thu Oct 29 2015 - 07:21:14 EST

Hi Mike, Stephen, et al.,

This series adds a new driver for the Renesas CPG (Clock Pulse
Generator) and MSSR (Module Standby and Software Reset) blocks for R-Car
H3 (r8a7795). This is supposed to be more in-line with current CCF best
practices, and allows expansion to cover the module reset functionality
in the future. This drivers follows the DT bindings in
Documentation/devicetree/bindings/clock/renesas,cpg-mssr.txt, which have
been accepted in clk/clk-next.
Support for other SoCs may be added later.

- Patch 1 reworks configuration after the removal of shmobile-legacy,
and prepares for the advent of arm64 support, where
- Patch 2 makes clock-output-names optional in the DIV6 driver.
This is a bit unrelated, but I had sent this patch before, and
there's a contextual dependency,
- Patch 3 prepares the existing DIV6 driver for reuse,
- Patch 4 introduces the new CPG/MSSR driver core, to be used by
several SoC-specific drivers,
- Patch 5 introduces the new r8a7795-specific driver.

Compared to v4, major changes are:
- Convert from CLK_OF_DECLARE() to a real platform_driver, initialized
using platform_driver_probe() from subsys_initcall().
Note that arch_initcall() would be OK for arm32, but not for arm64:
- arm32 calls of_platform_populate() from arch_initcall(),
- arm64 calls of_platform_populate() from arch_initcall_sync().
- Move conversion from Module Clock numbers to IDs from run time (C
code) to compile time (CPP macros for filling in tables),
- Implement handling of core clocks that are suitable for power
management (not needed for R-Car, but useful for SH-Mobile AG5 and
R-Mobile APE6),
More detailed changelog information is available in the individual

For your convenience, I pushed these patches and its dependencies to the
topic/cpg-mssr-v5 branch of my
renesas-drivers repository at

A full integration for R-Car Gen3 is available from the
topic/gen3-latest branch.

Thanks for your comments!

- v4 = "[PATCH/RFC v4 0/5] clk: shmobile: Add new Renesas CPG/MSSR DT
bindings" (http://www.spinics.net/lists/devicetree/msg98342.html)
- v3 = "[PATCH/RFC v3 0/3] clk: shmobile: Add new Renesas CPG/MSSR DT
bindings" (http://www.spinics.net/lists/linux-sh/msg45870.html)
- v2+ â "[PATCH v8 00/05] Renesas R-Car Gen3 CPG support V8"
- v2 = "[PATCH/RFC v2 0/4] Renesas CPG/MSTP DT Binding Proposal"
- v1 = "Renesas CPG/MSTP DT Binding Proposal"

Geert Uytterhoeven (4):
clk: shmobile: div6: Make clock-output-names optional
clk: shmobile: div6: Extract cpg_div6_register()
clk: shmobile: Add new CPG/MSSR driver core
clk: shmobile: r8a7795: Add new CPG/MSSR driver

Magnus Damm (1):
clk: shmobile: Rework CONFIG_ARCH_SHMOBILE_MULTI

.../bindings/clock/renesas,cpg-div6-clocks.txt | 4 +
drivers/clk/Makefile | 1 +
drivers/clk/shmobile/Makefile | 24 +-
drivers/clk/shmobile/clk-div6.c | 137 +++--
drivers/clk/shmobile/clk-div6.h | 7 +
drivers/clk/shmobile/r8a7795-cpg-mssr.c | 373 +++++++++++++
drivers/clk/shmobile/renesas-cpg-mssr.c | 593 +++++++++++++++++++++
drivers/clk/shmobile/renesas-cpg-mssr.h | 132 +++++
8 files changed, 1208 insertions(+), 63 deletions(-)
create mode 100644 drivers/clk/shmobile/clk-div6.h
create mode 100644 drivers/clk/shmobile/r8a7795-cpg-mssr.c
create mode 100644 drivers/clk/shmobile/renesas-cpg-mssr.c
create mode 100644 drivers/clk/shmobile/renesas-cpg-mssr.h




Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/