arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Subsystems (2)
Geert Uytterhoeven
maintainerv4 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi all,
This patch series adds support for Renesas Salvator-X and H3ULCB development boards equipped with revision ES2.0 of the R-Car H3 SoC.
Our goal is to have a single kernel image supporting both ES1. and ES2.0 revisions of the R-Car H3 SoC, and let r8a7795-salvator-x.dtb and r8a7795-h3ulcb.dtb represent the latest production hardware. As R-Car H3 ES1.x SoCs are pre-production revisions, the DTB files for these revisions are renamed to r8a7795-es1-salvator-x.dtb resp. r8a7795-es1-h3ulcb.dtb.
While this will cause a slight inconvenience for developers using pre-production hardware, it will make it easier to deploy production hardware, and phase out support for pre-production hardware later. Note that unless you need access to new features not yet described in DT, you can keep on using the existing DTBs on pre-production hardware.
- Patch 1 adds support for the R-Car H3 ES2.0 Soc, by providing 2
.dtsi files: r8a7795.dtsi (ES2.0), and r8a7795-es1.dtsi (ES1.x).
- Patch 2 adds support for Salvator-X with R-Car H3 ES2.0 by providing
2 .dts files: r8a7795-salvator-x.dts (ES2.0), and
r8a7795-es1-salvator-x.dts(ES1.x),
- Patch 3 adds support for ator-X with R-Car H3 ES2.0 by providing 2
.dts files: r8a7795-salvator-x.dts (ES2.0), and
r8a7795-es1-salvator-x.dts(ES1.x).While patch 1 has no user-visible impact, patches 2 and 3 do.
Changes compared to v3:
- Remove "/remove/overrides", as r8a7795-es1.dtsi does additions only,
- Move node and property deletion guidelines above the scissors,
- Rebase on top of r8a7795 HDMI support (but most of that is "hidden" thanks to git's smart copy from/to patch format),
Changes compared to v2:
- Rebase on top of common Salvator-X board support extraction,
- Remove the "compatible" property from the DU node in r8a7795.dtsi, in addition to the "vsps" property,
- Add support for ES2.0-based H3ULCB.
For changes compared to v1 (which was not posted), please refer to the individual patches.
Dependencies:
- This patch series is against renesas-devel-20170515-v4.12-rc1,
- Thanks to git's smart copy from/to patch format, it should be applicable with and without "[PATCH 0/2] arm64: dts: salvator-x: Move HDMI0 to common Salvator-X board support".
This series is available in the topic/r8a7795es2-dt-v4 branch of my renesas-drivers git repository atgit://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git.
An integration branch (incl. all dependencies) for testing is provided as topic/r8a7795es2-integration. I plan to update this branch when any of the dependencies are updated.
This has been tested on Salvator-X (H3 ES1.0 and ES2.0), and H3ULCB with H3 ES1.1.
This has not been tested on H3ULCB with H3 ES2.0 due to lack of hardware, so perhaps you want to defer patch 3. However, adding ES2.0 support to both boards at the same time has its advantages (e.g. to answer the question "in which kernel version do I need a DTB with 'es1' in its name?").
Thanks for applying (at least) the first two patches!
Geert Uytterhoeven (3):
arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
arm64: dts: r8a7795: salvator-x: Add support for R-Car H3 ES2.0
arm64: dts: r8a7795: h3ulcb: Add support for R-Car H3 ES2.0
arch/arm64/boot/dts/renesas/Makefile | 1 +
.../{r8a7795-h3ulcb.dts => r8a7795-es1-h3ulcb.dts} | 4 +-
...5-salvator-x.dts => r8a7795-es1-salvator-x.dts} | 4 +-
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | 84 ++++++++++++++++++++++
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 2 +-
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 +-
arch/arm64/boot/dts/renesas/r8a7795.dtsi | 71 +-----------------
7 files changed, 92 insertions(+), 76 deletions(-)
copy arch/arm64/boot/dts/renesas/{r8a7795-h3ulcb.dts => r8a7795-es1-h3ulcb.dts} (91%)
copy arch/arm64/boot/dts/renesas/{r8a7795-salvator-x.dts => r8a7795-es1-salvator-x.dts} (94%)
create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsiSignature · 12 lines
2.7.4
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 TorvaldsGeert Uytterhoeven
maintainerPATCH v4 1/3 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Update r8a7795.dtsi so it corresponds to R-Car H3 ES2.0 or later:
- The following devices no longer exist on ES2.0, and are thus removed:
fcpf2, fcpvd3, fcpvi2, fdp1-2, usb3-if1, vspd3, vspi2.
- The DU <-> VSPD topology is different on ES2.0, hence remove the "compatible" and "vsps" properties from the DU node until the driver can handle this.
Move support for the ES1.x revision of the R-Car H3 SoC into a separate file. To avoid duplication, r8a7795-es1.dtsi includes r8a7795.dtsi, and adds device nodes and properties where needed. Note that while currently r8a7795-es1.dtsi only adds device nodes, removal of devices nodes and properties can be implemented using the /delete-node/ and /delete-property/ keywords, as shown below:
&soc {
/delete-node/ <name>@<addr>;
};
&<label> {
/delete-property/ <prop>;
};Switch r8a7795-salvator-x.dts and r8a7795-h3ulcb.dts from r8a7795.dtsi to r8a7795-es1.dtsi to preserve compatibility.
---
v4:
- Remove "/remove/overrides", as r8a7795-es1.dtsi does additions only,
- Move node and property deletion guidelines above the scissors,
- Rebase on top of r8a7795 HDMI support,
v3:
- Rebase on top of common Salvator-X board support extraction,
- Remove the "compatible" property from the DU node in r8a7795.dtsi, in addition to the "vsps" property,
v2:
- Use a separate file for ES1.x instead of for ES2.0, so r8a7795.dtsi always corresponds to the latest SoC revision,
- Add a dash between SoC part number and revision, for compatibility with the BSP,
- Enhance the hardware description from basic support to everything already supported on ES1.x (except for DU due VSP),
- Let r8a7795-es1.dtsi include r8a7795.dtsi.
--- arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | 84 ++++++++++++++++++++++ arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 4 +- arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 +- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 71 +----------------- 4 files changed, 89 insertions(+), 74 deletions(-) create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi new file +84 -0
@@ -0,0 +1,84 @@ +/* + * Device Tree Source for the r8a7795 ES1.x SoC + * + * Copyright (C) 2015 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include "r8a7795.dtsi" + +&soc { + xhci1: usb@ee0400000 { + compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; + reg = <0 0xee040000 0 0xc00>; + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 327>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 327>; + status = "disabled"; + }; + + fcpf2: fcp@fe952000 { + compatible = "renesas,fcpf"; + reg = <0 0xfe952000 0 0x200>; + clocks = <&cpg CPG_MOD 613>; + power-domains = <&sysc R8A7795_PD_A3VP>; + resets = <&cpg 613>; + }; + + vspi2: vsp@fe9c0000 { + compatible = "renesas,vsp2"; + reg = <0 0xfe9c0000 0 0x8000>; + interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 629>; + power-domains = <&sysc R8A7795_PD_A3VP>; + resets = <&cpg 629>; + + renesas,fcp = <&fcpvi2>; + }; + + fcpvi2: fcp@fe9cf000 { + compatible = "renesas,fcpv"; + reg = <0 0xfe9cf000 0 0x200>; + clocks = <&cpg CPG_MOD 609>; + power-domains = <&sysc R8A7795_PD_A3VP>; + resets = <&cpg 609>; + }; + + vspd3: vsp@fea38000 { + compatible = "renesas,vsp2"; + reg = <0 0xfea38000 0 0x4000>; + interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 620>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 620>; + + renesas,fcp = <&fcpvd3>; + }; + + fcpvd3: fcp@fea3f000 { + compatible = "renesas,fcpv"; + reg = <0 0xfea3f000 0 0x200>; + clocks = <&cpg CPG_MOD 600>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 600>; + }; + + fdp1@fe948000 { + compatible = "renesas,fdp1"; + reg = <0 0xfe948000 0 0x2400>; + interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 117>; + power-domains = <&sysc R8A7795_PD_A3VP>; + resets = <&cpg 117>; + renesas,fcp = <&fcpf2>; + }; +}; + +&du { + compatible = "renesas,du-r8a7795"; + vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; +};
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +2 -2
@@ -12,11 +12,11 @@ #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include "ulcb.dtsi" / { - model = "Renesas H3ULCB board based on r8a7795"; + model = "Renesas H3ULCB board based on r8a7795 ES1.x"; compatible = "renesas,h3ulcb", "renesas,r8a7795"; memory@48000000 {
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +2 -2
@@ -11,11 +11,11 @@ #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include "salvator-x.dtsi" / { - model = "Renesas Salvator-X board based on r8a7795"; + model = "Renesas Salvator-X board based on r8a7795 ES1.x"; compatible = "renesas,salvator-x", "renesas,r8a7795"; memory@48000000 {
arch/arm64/boot/dts/renesas/r8a7795.dtsi +1 -70
119 lines not on this page · raw message
Signature · 1 line
2.7.4
Geert Uytterhoeven
maintainerPATCH v4 2/3 arm64: dts: r8a7795: salvator-x: Add support for R-Car H3 ES2.0
In reply to Geert UytterhoevenSplit off support for Salvator-X boards with the ES1.x revision of the R-Car H3 SoC into a separate file. The main r8a7795-salvator-x.dts file now corresponds to Salvator-X with R-Car H3 ES2.0 or later.
---
v4:
- Rebase on top of r8a7795 HDMI support,
v3:
- Rebase on top of common Salvator-X board support extraction,
v2:
- Use a separate file for ES1.x instead of for ES2.0, so r8a7795-salvator-x.dts always corresponds to the board with the latest SoC revision,
- Add a dash between SoC part number and revision, for compatibility with the BSP,
- Enhance the hardware description from basic support to everything already supported on ES1.x.
---
arch/arm64/boot/dts/renesas/Makefile | 1 +
.../renesas/{r8a7795-salvator-x.dts => r8a7795-es1-salvator-x.dts} | 0
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++--
3 files changed, 3 insertions(+), 2 deletions(-)
copy arch/arm64/boot/dts/renesas/{r8a7795-salvator-x.dts => r8a7795-es1-salvator-x.dts} (100%)arch/arm64/boot/dts/renesas/Makefile +1 -0
@@ -1,4 +1,5 @@ dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb +dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb always := $(dtb-y)
arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts renamed from arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +0 -0
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +2 -2
@@ -11,11 +11,11 @@ #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 /dts-v1/; -#include "r8a7795-es1.dtsi" +#include "r8a7795.dtsi" #include "salvator-x.dtsi" / { - model = "Renesas Salvator-X board based on r8a7795 ES1.x"; + model = "Renesas Salvator-X board based on r8a7795 ES2.0+"; compatible = "renesas,salvator-x", "renesas,r8a7795"; memory@48000000 {
Signature · 1 line
2.7.4
Geert Uytterhoeven
maintainerPATCH v4 3/3 arm64: dts: r8a7795: h3ulcb: Add support for R-Car H3 ES2.0
In reply to Geert UytterhoevenSplit off support for H3ULCB boards with the ES1.x revision of the R-Car H3 SoC into a separate file. The main r8a7795-h3ulcb.dts file now corresponds to H3ULCB with R-Car H3 ES2.0 or later.
---
v4:
- No changes,
v3:
- New.
---
arch/arm64/boot/dts/renesas/Makefile | 2 +-
.../boot/dts/renesas/{r8a7795-h3ulcb.dts => r8a7795-es1-h3ulcb.dts} | 0
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 4 ++--
3 files changed, 3 insertions(+), 3 deletions(-)
copy arch/arm64/boot/dts/renesas/{r8a7795-h3ulcb.dts => r8a7795-es1-h3ulcb.dts} (100%)arch/arm64/boot/dts/renesas/Makefile +1 -1
@@ -1,5 +1,5 @@ dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb -dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb +dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb always := $(dtb-y)
arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts renamed from arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +0 -0
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +2 -2
@@ -12,11 +12,11 @@ #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 /dts-v1/; -#include "r8a7795-es1.dtsi" +#include "r8a7795.dtsi" #include "ulcb.dtsi" / { - model = "Renesas H3ULCB board based on r8a7795 ES1.x"; + model = "Renesas H3ULCB board based on r8a7795 ES2.0+"; compatible = "renesas,h3ulcb", "renesas,r8a7795"; memory@48000000 {
Signature · 1 line
2.7.4
v4 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
In reply to Geert UytterhoevenQuoted 60 lines · Geert Uytterhoeven
Hi all,
This patch series adds support for Renesas Salvator-X and H3ULCB development boards equipped with revision ES2.0 of the R-Car H3 SoC.
Our goal is to have a single kernel image supporting both ES1. and ES2.0 revisions of the R-Car H3 SoC, and let r8a7795-salvator-x.dtb and r8a7795-h3ulcb.dtb represent the latest production hardware. As R-Car H3 ES1.x SoCs are pre-production revisions, the DTB files for these revisions are renamed to r8a7795-es1-salvator-x.dtb resp. r8a7795-es1-h3ulcb.dtb.
While this will cause a slight inconvenience for developers using pre-production hardware, it will make it easier to deploy production hardware, and phase out support for pre-production hardware later. Note that unless you need access to new features not yet described in DT, you can keep on using the existing DTBs on pre-production hardware.
- Patch 1 adds support for the R-Car H3 ES2.0 Soc, by providing 2
.dtsi files: r8a7795.dtsi (ES2.0), and r8a7795-es1.dtsi (ES1.x). - Patch 2 adds support for Salvator-X with R-Car H3 ES2.0 by providing 2 .dts files: r8a7795-salvator-x.dts (ES2.0), and r8a7795-es1-salvator-x.dts(ES1.x), - Patch 3 adds support for ator-X with R-Car H3 ES2.0 by providing 2 .dts files: r8a7795-salvator-x.dts (ES2.0), and r8a7795-es1-salvator-x.dts(ES1.x).While patch 1 has no user-visible impact, patches 2 and 3 do.
Changes compared to v3:
- Remove "/remove/overrides", asr8a7795-es1.dtsidoes additions only,
- Move node and property deletion guidelines above the scissors,
- Rebase on top of r8a7795 HDMI support (but most of that is "hidden" thanks to git's smart copy from/to patch format),Changes compared to v2:
- Rebase on top of common Salvator-X board support extraction,
- Remove the "compatible" property from the DU node inr8a7795.dtsi, in addition to the "vsps" property,
- Add support for ES2.0-based H3ULCB.For changes compared to v1 (which was not posted), please refer to the individual patches.
Dependencies:
- This patch series is against renesas-devel-20170515-v4.12-rc1,
- Thanks to git's smart copy from/to patch format, it should be applicable with and without "[PATCH 0/2] arm64: dts: salvator-x: Move HDMI0 to common Salvator-X board support".This series is available in the topic/r8a7795es2-dt-v4 branch of my renesas-drivers git repository at
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git.
An integration branch (incl. all dependencies) for testing is provided as topic/r8a7795es2-integration. I plan to update this branch when any of the dependencies are updated.This has been tested on Salvator-X (H3 ES1.0 and ES2.0), and H3ULCB with H3 ES1.1.
Quoted 7 lines
This has not been tested on H3ULCB with H3 ES2.0 due to lack of hardware, so perhaps you want to defer patch 3. However, adding ES2.0 support to both boards at the same time has its advantages (e.g. to answer the question "in which kernel version do I need a DTB with 'es1' in its name?").
Thanks for applying (at least) the first two patches!
Thanks, patches 1 and 2 queued up.
I'd rather not take 3 until it can be tested somehow.
v4 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Simon,
Quoted 3 lines · Simon Horman
Quoted 2 lines · Geert Uytterhoeven
This patch series adds support for Renesas Salvator-X and H3ULCB development boards equipped with revision ES2.0 of the R-Car H3 SoC.
[...]
Quoted 9 lines
Quoted 9 lines
This has been tested on Salvator-X (H3 ES1.0 and ES2.0), and H3ULCB with H3 ES1.1.
This has not been tested on H3ULCB with H3 ES2.0 due to lack of hardware, so perhaps you want to defer patch 3. However, adding ES2.0 support to both boards at the same time has its advantages (e.g. to answer the question "in which kernel version do I need a DTB with 'es1' in its name?").
Quoted 3 lines
Quoted 1 line
Thanks for applying (at least) the first two patches!
Thanks, patches 1 and 2 queued up.
Thank you!
Quoted 1 line
I'd rather not take 3 until it can be tested somehow.
No problem.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
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