arm64: renesas: Add Renesas R8A7795 SoC support
Subsystems (5)
v13 cover arm64: renesas: Add Renesas R8A7795 SoC support
Hi,
this patchset adds basic support for the Renesas R-Car H3 (R8A7795) SoC and its Saovator-X board.
Based on a merge of:
* v4.3-rc1
* clk-shmobile-for-v4.4 branch of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers
This provides the bindings and includes for the new CPG driver. These are queued up by the subsystem maintainer, Mike Turquette, for v4.4.
Run-time dependencies:
* The base
* The new GPG driver
"[PATCH/RFC v4 0/5] clk: shmobile: Add new Renesas CPG/MSSR DT bindings" and its dependencies. This may be found in the topic/cpg-mssr-v4 branch of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers
For changes see per-patch changelogs.
Availability
To aid review and testing the following branches are available in my renesas tree on kernel.org:
* topic/arm64-rcar-gen3-v13: This patchset
* topic/arm64-rcar-gen3-v13.runtime: This patchset and its runtime dependencies
Gaku Inami (1):
arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
Geert Uytterhoeven (2):
arm64: renesas: r8a7795 dtsi: Add dummy dma-controller nodes
arm64: renesas: r8a7795 dtsi: Add all SCIF nodes
Kuninori Morimoto (3):
arm64: renesas: r8a7795: enable PFC
arm64: renesas: add Salvator-X board support on DTS
arm64: defconfig: renesas: Enable Renesas r8a7795 SoC
Simon Horman (1):
MAINTAINERS: Add entry Renesas arm64 architecture
Documentation/devicetree/bindings/arm/shmobile.txt | 4 + MAINTAINERS | 9 ++ arch/arm64/Kconfig.platforms | 17 ++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/renesas/Makefile | 4 + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 62 ++++++++ arch/arm64/boot/dts/renesas/r8a7795.dtsi | 173 +++++++++++++++++++++ arch/arm64/configs/defconfig | 5 + 8 files changed, 275 insertions(+) create mode 100644 arch/arm64/boot/dts/renesas/Makefile create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts create mode 100644 arch/arm64/boot/dts/renesas/r8a7795.dtsi
Signature · 1 line
2.1.4
PATCH v13 1/7 arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support
From: Gaku Inami <[email protected]>
Initial version of Renesas R-Car H3 support
---
Note regarding GIC:
I am currently in the process of confirming weather the gic is a vgic or not and if so the details required to supply the extra memory ranges and interrupt. As the patch-set is functional as-is and is a dependency for all other integration work for the r8a7795/Salvatore-X I would like to handle any updates to the gic node as an incremental change.
Changes since v12: (Simon Horman <[email protected]>)
- Enhance comments in dts file, as suggested by Geert Uytterhoeven
- Added Ack from Geert Uytterhoeven
Changes since v11: (Simon Horman <[email protected]>)
- Update for new CPG/MSSR bindings via Geert Uytterhoeven
Changes since v10:
- None
Changes since v9: (Magnus Damm <[email protected]>)
- Added clock-output-names for the CPG
Changes since v8: (Magnus Damm <[email protected]>)
- Renamed xtal node name to drop _clk - thanks Geert!
- Kconfig s/platform/platforms/g - thanks Laurent!
- Added select PINCTRL - thanks Geert
- Removed unused Makefile subdir line - thanks Laurent!
Changes since v7: (Magnus Damm <[email protected]>)
- Folded together the following patches from v7:
[PATCH 6/25] arm64: renesas: Add new Renesas R-Car Gen3 SoC Kconfig [PATCH 7/25] arm64: renesas: r8a7795: Add Renesas R8A7795 SoC support [PATCH 8/25] arm64: renesas: r8a7795: Add initial SoC support
- Updated Kconfig bits
Changed to CONFIG_ARCH_R8A7795 and CONFIG_RENESAS CONFIG_ARCH_SHMOBILE is still set to be able to build various drivers CONFIG_ARCH_SHMOBILE_MULTI is gone
select PM_GENERIC_DOMAINS if PM
- Moved "s3d4_clk" to clock patch from geert
- Replaced CPG clock-output-names with clock-indices
- set #power-domain-cells to 0
--- Documentation/devicetree/bindings/arm/shmobile.txt | 2 + arch/arm64/Kconfig.platforms | 17 +++++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/renesas/Makefile | 2 + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 83 ++++++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 arch/arm64/boot/dts/renesas/Makefile create mode 100644 arch/arm64/boot/dts/renesas/r8a7795.dtsi
Documentation/devicetree/bindings/arm/shmobile.txt +2 -0
@@ -27,6 +27,8 @@ SoCs: compatible = "renesas,r8a7793" - R-Car E2 (R8A77940) compatible = "renesas,r8a7794" + - R-Car H3 (R8A77950) + compatible = "renesas,r8a7795" Boards:
arch/arm64/Kconfig.platforms +17 -0
@@ -66,6 +66,23 @@ config ARCH_SEATTLE help This enables support for AMD Seattle SOC Family +config ARCH_SHMOBILE + bool + +config ARCH_RENESAS + bool "Renesas SoC Platforms" + select ARCH_SHMOBILE + select PINCTRL + select PM_GENERIC_DOMAINS if PM + help + This enables support for the ARMv8 based Renesas SoCs. + +config ARCH_R8A7795 + bool "Renesas R-Car H3 SoC Platform" + depends on ARCH_RENESAS + help + This enables support for the Renesas R-Car H3 SoC. + config ARCH_TEGRA bool "NVIDIA Tegra SoC Family" select ARCH_HAS_RESET_CONTROLLER
arch/arm64/boot/dts/Makefile +1 -0
@@ -9,6 +9,7 @@ dts-dirs += hisilicon dts-dirs += marvell dts-dirs += mediatek dts-dirs += qcom +dts-dirs += renesas dts-dirs += rockchip dts-dirs += sprd dts-dirs += xilinx
arch/arm64/boot/dts/renesas/Makefile new file +2 -0
@@ -0,0 +1,2 @@ +always := $(dtb-y) +clean-files := *.dtb
arch/arm64/boot/dts/renesas/r8a7795.dtsi new file +83 -0
83 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v13 2/7 arm64: renesas: r8a7795 dtsi: Add dummy dma-controller nodes
In reply to Simon HormanFrom: Geert Uytterhoeven <[email protected]>
Add dummy nodes for the 3 DMA controllers.
This allows to start describing DMA channels for DMA slaves now.
---
Changes since v10:
- None
Changes from V9: (Magnus Damm <[email protected]>)
- Updated to remove fuzz
Changes from V8: (Magnus Damm <[email protected]>)
- Updated to remove fuzz
Changes from V7: (Magnus Damm <[email protected]>)
- Changed order not to depend on SCIF patch(es)
Based on:
[PATCH 2/6] arm64: renesas: r8a7795 dtsi: Add dummy dma-controller nodes
--- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +12 -0
@@ -79,5 +79,17 @@ #clock-cells = <2>; #power-domain-cells = <0>; }; + + dmac0: dma-controller at e6700000 { + /* Empty node for now */ + }; + + dmac1: dma-controller at e7300000 { + /* Empty node for now */ + }; + + dmac2: dma-controller at e7310000 { + /* Empty node for now */ + }; }; };
Signature · 1 line
2.1.4
PATCH v13 3/7 arm64: renesas: r8a7795 dtsi: Add all SCIF nodes
In reply to Simon HormanFrom: Geert Uytterhoeven <[email protected]>
Add the device nodes for all R-Car H3 SCIF serial ports, incl. clocks, clock domain, and dma properties.
---
Changes since V11 (Simon Horman <[email protected]>)
- Update for new CPG/MSSR bindings via Geert Uytterhoeven
Changes since V10 (Simon Horman <[email protected]>)
- As suggested by Geert Uyterhoven
+ R8A7795_CLK_SCIF2 is 310 not 210
Changes since V10 (Simon Horman <[email protected]>)
- As suggested by Geert Uyterhoven
+ R8A7795_CLK_SCIF2 is 310 not 210
Changes since V9: (Magnus Damm <[email protected]>)
- Added SCIF2 DMA bits again
- Converted DT nodes for MSTP to MSSR, adjusted r8a7795-clock.h
- Include clock-output-names
Changes since V8: (Magnus Damm <[email protected]>)
- Dropped SCIF2 DMA bits - thanks Laurent!
- Changed name of mstp2 and mstp3 nodes - thanks Geert!
- Added Acked-by from Laurent
Changes since V7: (Magnus Damm <[email protected]>)
- Folded together above SCIF2 patches
- Added SCIF2 DMA bits
- Got rid of clock-output-names
- Replaced renesas,clock-indices with clock-indices
Based on:
[PATCH 9/25] arm64: renesas: r8a7795: Add SCIF2 support [PATCH 1/6] arm64: renesas: r8a7795 dtsi: Mark scif2 disabled [PATCH 3/6] arm64: renesas: r8a7795 dtsi: Add all SCIF nodes
--- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 73 ++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +73 -0
@@ -8,6 +8,7 @@ * kind, whether express or implied. */ +#include <dt-bindings/clock/r8a7795-cpg-mssr.h> #include <dt-bindings/interrupt-controller/arm-gic.h> / {
@@ -91,5 +92,77 @@ dmac2: dma-controller at e7310000 { /* Empty node for now */ }; + + scif0: serial at e6e60000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6e60000 0 64>; + interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 207>; + clock-names = "sci_ick"; + dmas = <&dmac1 0x51>, <&dmac1 0x50>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; + + scif1: serial at e6e68000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6e68000 0 64>; + interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 206>; + clock-names = "sci_ick"; + dmas = <&dmac1 0x53>, <&dmac1 0x52>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; + + scif2: serial at e6e88000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6e88000 0 64>; + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 310>; + clock-names = "sci_ick"; + dmas = <&dmac1 0x13>, <&dmac1 0x12>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; + + scif3: serial at e6c50000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6c50000 0 64>; + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 204>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x57>, <&dmac0 0x56>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; + + scif4: serial at e6c40000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6c40000 0 64>; + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 203>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x59>, <&dmac0 0x58>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; + + scif5: serial at e6f30000 { + compatible = "renesas,scif-r8a7795", "renesas,scif"; + reg = <0 0xe6f30000 0 64>; + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 202>; + clock-names = "sci_ick"; + dmas = <&dmac1 0x5b>, <&dmac1 0x5a>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + status = "disabled"; + }; }; };
Signature · 1 line
2.1.4
PATCH v13 4/7 arm64: renesas: r8a7795: enable PFC
In reply to Simon HormanFrom: Kuninori Morimoto <[email protected]>
Add a PFC node for the on-chip r8a7795 pin controller.
---
Changes since v10:
- None
Changes since V9: (Magnus Damm <[email protected]>)
- None
Changes since V8: (Magnus Damm <[email protected]>)
- Dropped Kconfig TODO - select PINCTRL happens in patch 1
- Added Acked-by from Laurent
Changes since V7: (Magnus Damm <[email protected]>)
- Added changelog
Based on:
[PATCH 10/25 v7][RFC] arm64: renesas: r8a7795: enable PFC
--- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm64/boot/dts/renesas/r8a7795.dtsi +5 -0
@@ -81,6 +81,11 @@ #power-domain-cells = <0>; }; + pfc: pfc at e6060000 { + compatible = "renesas,pfc-r8a7795"; + reg = <0 0xe6060000 0 0x50c>; + }; + dmac0: dma-controller at e6700000 { /* Empty node for now */ };
Signature · 1 line
2.1.4
PATCH v13 5/7 arm64: renesas: add Salvator-X board support on DTS
In reply to Simon HormanFrom: Kuninori Morimoto <[email protected]>
Add initial board support for r8a7795 Salvator-X. At this point only DEBUG0 and DEBUG1 serial ports are supported.
---
Changes since v12:
- Include rate in stdout-path, as suggested by Mark Rutland.
Changes since v10:
- None
Changes since V9: (Magnus Damm <[email protected]>)
- Added board specific EXTAL information by folding in:
[PATCH][RFC] arm64: renesas: Add EXTAL configuration to Salvator-X
Changes since V8: (Magnus Damm <[email protected]>)
- None
Changes since V7: (Magnus Damm <[email protected]>)
- Added changelog
Based on:
[PATCH 15/25] arm64: renesas: add Salvator-X board support on DTS [PATCH 5/5] arm64: renesas: salvator-x: Update SCIF2 pin group [PATCH 5/6] arm64: renesas: salvator-x: Enable SCIF1 on serial1
--- Documentation/devicetree/bindings/arm/shmobile.txt | 2 + arch/arm64/boot/dts/renesas/Makefile | 2 + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 62 ++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
Documentation/devicetree/bindings/arm/shmobile.txt +2 -0
@@ -59,6 +59,8 @@ Boards: compatible = "renesas,lager", "renesas,r8a7790" - Marzen compatible = "renesas,marzen", "renesas,r8a7779" + - Salvator-X + compatible = "renesas,salvator-x", "renesas,r8a7795"; Note: Reference Device Tree Implementations are temporary implementations to ease the migration from platform devices to Device Tree, and are
arch/arm64/boot/dts/renesas/Makefile +2 -0
@@ -1,2 +1,4 @@ +dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb + always := $(dtb-y) clean-files := *.dtb
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts new file +62 -0
62 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v13 6/7 arm64: defconfig: renesas: Enable Renesas r8a7795 SoC
In reply to Simon HormanFrom: Kuninori Morimoto <[email protected]>
This patch enables the Renesas R-Car H3 SoC together with the SCIF driver in the arm64 defconfig.
---
Changes since v10:
- None
Changes since V9: (Magnus Damm <[email protected]>)
- None
Changes since V8: (Magnus Damm <[email protected]>)
- Added Acked-by from Geert
Changes since V7: (Magnus Damm <[email protected]>)
- Updated changelog
- Use CONFIG_RENESAS and CONFIG_R8A7795
Based on:
[PATCH 19/25] arm64: defconfig: renesas: Enable Renesas R-Car Gen3 SoC [PATCH 20/25] arm64: defconfig: renesas: enable SCIF
--- arch/arm64/configs/defconfig | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm64/configs/defconfig +5 -0
@@ -39,6 +39,8 @@ CONFIG_ARCH_HISI=y CONFIG_ARCH_MEDIATEK=y CONFIG_ARCH_ROCKCHIP=y CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_RENESAS=y +CONFIG_ARCH_R8A7795=y CONFIG_ARCH_TEGRA=y CONFIG_ARCH_TEGRA_132_SOC=y CONFIG_ARCH_QCOM=y
@@ -109,6 +111,9 @@ CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_8250_MT6577=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=11 +CONFIG_SERIAL_SH_SCI_CONSOLE=y CONFIG_SERIAL_MSM=y CONFIG_SERIAL_MSM_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y
Signature · 1 line
2.1.4
PATCH v13 7/7 MAINTAINERS: Add entry Renesas arm64 architecture
In reply to Simon HormanInitial Renesas arm64 architecture support will be for the R-Car H3, r8a7795, SoC and its Salvator-X board.
---
Changes since v12:
- Added Ack from Geert Uytterhoeven
Changes since v11:
- As suggested by Khiem Nguyen:
+ Removed reference to http://oss.renesas.com as that web site is closed
Changes since v10:
- New Patch
--- MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+)
MAINTAINERS +9 -0
@@ -1392,6 +1392,15 @@ M: Lennert Buytenhek <[email protected]> L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) S: Maintained +ARM/RENESAS ARM64 ARCHITECTURE +M: Simon Horman <[email protected]> +M: Magnus Damm <[email protected]> +L: linux-sh at vger.kernel.org +Q: http://patchwork.kernel.org/project/linux-sh/list/ +T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next +S: Supported +F: arch/arm64/boot/dts/renesas/ + ARM/RISCPC ARCHITECTURE M: Russell King <[email protected]> L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers)
Signature · 1 line
2.1.4
PATCH v13 7/7 MAINTAINERS: Add entry Renesas arm64 architecture
"Add entry for Renesas", perhaps?
PATCH v13 7/7 MAINTAINERS: Add entry Renesas arm64 architecture
Quoted 1 line · Sergei Shtylyov
"Add entry for Renesas", perhaps?
Thanks, I will fix that.
v13 cover arm64: renesas: Add Renesas R8A7795 SoC support
In reply to Simon HormanQuoted 4 lines · Simon Horman
Hi,
this patchset adds basic support for the Renesas R-Car H3 (R8A7795) SoC and its Saovator-X board.
I have queued up this patch-set for v4.5.
It is included in renesas-next-20151116-v4.4-rc1 and renesas-devel-20151116-v4.4-rc1, which I have pushed to my renesas tree on kernel.org. Accordingly it should also show up in linux-next.