Hi all,
This RFC patch series adds support for the R-Car M3-W+ (R8A77961) SoC
and the Salvator-XS board with R-Car M3-W+. This SoC is a derivative of
R-Car M3-W (R8A77960), and also known as R-Car M3-W ES3.0.
As this is an RFC, I'm sending it to a limited audience.
Based on experience with previous SoCs in the R-Car Gen3 family, the
following design decisions were made:
- Use different compatible values (r8a77961-based),
- Use different clock and SYSC DT binding definitions
(R8A77961-based), but the same numerical values, to allow sharing
drivers,
- Share the pin control driver,
- Share the clock driver,
- Share the system controller driver.
While the DT ABI is stable (hence we cannot s/r8a7796/r8a77960/ in DTS),
kernel source code and kernel config symbols can be changed at any
time. As changing kernel config symbols impacts the user, they weren't
renamed yet.
Questions:
- What's the board part number of Salvator-XS with R-Car M3-W+?
- Should r8a77961_pinmux_info (and the rename of r8a7796_pinmux_info
to r8a77960_pinmux_info) be dropped? I added it because
r8a7796_pinmux_info.name contains "r8a77960_pfc".
- Should the CLK_R8A77961 and PINCTRL_PFC_R8A77961 symbols be dropped?
The clock and pin control drivers are the same or almost the same,
so the code increase by always enabling both is minimal.
- Should the R8A77961 config symbols be dropped?
- CONFIG_ARCH_R8A77961
- CONFIG_CLK_R8A77961
- CONFIG_PINCTRL_PFC_R8A77961
- CONFIG_SYSC_R8A77961
- If not, should the R8A7796 config symbols be renamed?
- CONFIG_ARCH_R8A7796 to CONFIG_ARCH_R8A77960?
- CONFIG_CLK_R8A7796 to CONFIG_CLK_R8A77960?
- CONFIG_PINCTRL_PFC_R8A7796 to CONFIG_PINCTRL_PFC_R8A77960?
- CONFIG_SYSC_R8A7796 to CONFIG_SYSC_R8A77960?
Due to dependencies on CONFIG_ARCH_R8A7796, this should be a single
commit.
Related questions for old R-Car H3 ES1.x support:
- Should CONFIG_PINCTRL_PFC_R8A77950 be added, to allow compiling out
R-Car H3 ES1.x pin control support?
If yes, should CONFIG_PINCTRL_PFC_R8A7795 be renamed to
CONFIG_PINCTRL_PFC_R8A77951?
This patch series is based on renesas-drivers-2019-10-01-v5.4-rc1). For
your convenience, it is available in the topic/r8a77961-v1 branch of my
renesas-drivers git repository at
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git.
This has been tested using remote access.
Thanks for your comments!
Geert Uytterhoeven (19):
dt-bindings: arm: renesas: Document R-Car M3-W+ SoC DT bindings
dt-bindings: arm: renesas: Add Salvator-XS board with R-Car M3-W+
dt-bindings: clock: renesas: cpg-mssr: Document r8a77961 support
dt-bindings: pinctrl: sh-pfc: Document r8a77961 support
dt-bindings: power: rcar-sysc: Document r8a77961 support
dt-bindings: reset: rcar-rst: Document r8a77961 support
dt-bindings: serial: sh-sci: Document r8a77961 bindings
dt-bindings: power: Add r8a77961 SYSC power domain definitions
dt-bindings: clock: Add r8a77961 CPG Core Clock Definitions
soc: renesas: Add R8A77961 config option
soc: renesas: Identify R-Car M3-W+
soc: renesas: rcar-sysc: Add R8A77961 support
soc: renesas: rcar-rst: Add support for R-Car M3-W+
clk: renesas: r8a7796: Add R8A77961 CPG/MSSR support
pinctrl: sh-pfc: r8a7796: Add R8A77961 PFC support
arm64: dts: renesas: Add Renesas R8A77961 SoC support
arm64: dts: renesas: Add support for Salvator-XS with R-Car M3-W+
arm64: defconfig: Enable R8A77961 SoC
[LOCAL] arm64: renesas_defconfig: Enable R8A77961 SoC
.../devicetree/bindings/arm/renesas.yaml | 6 +
.../bindings/clock/renesas,cpg-mssr.txt | 9 +-
.../bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 +
.../bindings/power/renesas,rcar-sysc.txt | 1 +
.../devicetree/bindings/reset/renesas,rst.txt | 1 +
.../bindings/serial/renesas,sci-serial.txt | 2 +
arch/arm64/boot/dts/renesas/Makefile | 1 +
.../boot/dts/renesas/r8a77961-salvator-xs.dts | 31 +
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 723 ++++++++++++++++++
arch/arm64/configs/defconfig | 1 +
arch/arm64/configs/renesas_defconfig | 1 +
drivers/clk/renesas/Kconfig | 5 +
drivers/clk/renesas/Makefile | 1 +
drivers/clk/renesas/r8a7796-cpg-mssr.c | 21 +-
drivers/clk/renesas/renesas-cpg-mssr.c | 6 +
drivers/pinctrl/sh-pfc/Kconfig | 4 +
drivers/pinctrl/sh-pfc/Makefile | 1 +
drivers/pinctrl/sh-pfc/core.c | 8 +-
drivers/pinctrl/sh-pfc/pfc-r8a7796.c | 31 +-
drivers/pinctrl/sh-pfc/sh_pfc.h | 3 +-
drivers/soc/renesas/Kconfig | 11 +
drivers/soc/renesas/Makefile | 1 +
drivers/soc/renesas/r8a7796-sysc.c | 27 +-
drivers/soc/renesas/rcar-rst.c | 1 +
drivers/soc/renesas/rcar-sysc.c | 5 +-
drivers/soc/renesas/rcar-sysc.h | 3 +-
drivers/soc/renesas/renesas-soc.c | 3 +
include/dt-bindings/clock/r8a77961-cpg-mssr.h | 65 ++
include/dt-bindings/power/r8a77961-sysc.h | 32 +
29 files changed, 978 insertions(+), 27 deletions(-)
create mode 100644 arch/arm64/boot/dts/renesas/r8a77961-salvator-xs.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a77961.dtsi
create mode 100644 include/dt-bindings/clock/r8a77961-cpg-mssr.h
create mode 100644 include/dt-bindings/power/r8a77961-sysc.h
--
2.17.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