Hi all,
Some Renesas SoCs may exist in different revisions, providing slightly
different functionalities. This needs to be catered for by drivers
and/or platform code. The recently proposed soc_device_match() API
seems like a good fit to handle this.
This patch series provides a prototype to handle the clock and pin
control differences between R-Car H3 ES1.x and ES2.0 SoCs:
- The clock difference handling should be fully functional.
It is implemented by keeping all clock tables up-to-date for the
latest SoC (except for clocks removed in later revisions), and
fixing up the tables at runtime for the actual SoC detected.
I've also tried the alternative solution of keeping one set of clock
tables for each SoC revision, but this increases kernel size by ca.
3 KiB.
- The pinctrl difference handling is just a skeleton for now,
providing a Proof-of-Concept.
This patch series depends on "[PATCH 0/4] soc: renesas: Identify SoC and
register with the SoC bus".
This has been tested on r8a7795/salvator-x, which has an R-Car H3 ES1.0
SoC, and by faking the presence of an R-Car H3 ES1.1 or ES2.0 Soc.
This has not been tested on actual R-Car H3 ES1.1 or ES2.0 SoCs, due to
lack of hardware.
For your convenience, this series (and its dependencies) is also available in
the topic/r8a7795-es2-v1 branch of my renesas-drivers git repository at
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git
Thanks for your comments!
Geert Uytterhoeven (4):
[RFC] clk: renesas: cpg-mssr: Add support for fixing up clock tables
[RFC] clk: renesas: Add r8a7795 ES2.0 CPG Core Clock Definitions
[RFC] clk: renesas: r8a7795: Add support for R-Car H3 ES2.0
[RFC] pinctrl: sh-pfc: r8a7795: Add PoC support for R-Car H3 ES2.0
drivers/clk/renesas/r8a7795-cpg-mssr.c | 151 +++++++++++++++++++++------
drivers/clk/renesas/renesas-cpg-mssr.c | 50 +++++++++
drivers/clk/renesas/renesas-cpg-mssr.h | 22 ++++
drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 19 ++++
include/dt-bindings/clock/r8a7795-cpg-mssr.h | 7 ++
5 files changed, 216 insertions(+), 33 deletions(-)
--
1.9.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
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