arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Subsystems (2)
Geert Uytterhoeven
maintainerv2 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi all,
This patch series adds preliminary support for Renesas Salvator-X development boards equipped with revision ES2.0 of the R-Car H3 Soc.
- Patch 1 adds support for the R-Car H3 ES2.0 Soc,
While this patch is safe as-is, as it doesn't affect any existing setups, it's probably a bit premature to apply it.
- Patch 2 adds support for Salvator-X boards with R-Car H3 ES2.0. This patch does affect existing development setups, as it changes the name of the DTB for Salvator-X boards equipped with ES1.x SoCs. Given most developers have access to ES1.x only, this patch must not be applied yet.
Note that for now, it is assumed that all H3ULCB boards are equipped with R-Car H3 ES1.x.
For changes compared to v1 (which was not posted), please refer to the individual patches.
Dependencies:
- renesas-devel-20170324-v4.11-rc3,
- [PATCH v2 0/4] clk: renesas: Add support for R-Car H3 ES2.0,
- [PATCH v2 0/4] pinctrl: sh-pfc: Add support for R-Car H3 ES2.0,
- [PATCH 0/3] soc: renesas: rcar-sysc: Add support for R-Car H3 ES2.0.
To do:
- Reduce duplication by sharing Salvator-X board description.
For testers, this series is available in the topic/r8a7795es2-dt-v2 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 with R-Car H3 ES1.0 and ES2.0 SoCs.
Thanks for your comments!
Geert Uytterhoeven (2):
arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
arm64: dts: r8a7795: salvator-x: Add support for R-Car H3 ES2.0
arch/arm64/boot/dts/renesas/Makefile | 1 +
...5-salvator-x.dts => r8a7795-es1-salvator-x.dts} | 4 +-
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | 83 ++++++++++++++++++++++
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 4 +-
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 +-
arch/arm64/boot/dts/renesas/r8a7795.dtsi | 70 +-----------------
6 files changed, 90 insertions(+), 74 deletions(-)
copy arch/arm64/boot/dts/renesas/{r8a7795-salvator-x.dts => r8a7795-es1-salvator-x.dts} (99%)
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 -- 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 TorvaldsA message that is not in the archive (sent off-list or not yet received): 1490362665-4422-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org
PATCH v2 1/2 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 "vsps" property 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, add adds/removes/overrides device nodes and properties where needed.
Switch r8a7795-salvator-x.dts and r8a7795-h3ulcb.dts from r8a7795.dtsi to r8a7795-es1.dtsi to preserve compatibility.
---
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>;
};
&<name> {
/delete-property/ <prop>;
};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 | 83 ++++++++++++++++++++++ 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 | 70 +----------------- 4 files changed, 88 insertions(+), 73 deletions(-) create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi new file +83 -0
@@ -0,0 +1,83 @@ +/* + * 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 { + vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; +};
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +2 -2
@@ -10,12 +10,12 @@ */ /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> / { - model = "Renesas H3ULCB board based on r8a7795"; + model = "Renesas H3ULCB board based on r8a7795 ES1.x"; compatible = "renesas,h3ulcb", "renesas,r8a7795"; aliases {
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +2 -2
@@ -32,11 +32,11 @@ */ /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include <dt-bindings/gpio/gpio.h> / { - model = "Renesas Salvator-X board based on r8a7795"; + model = "Renesas Salvator-X board based on r8a7795 ES1.x"; compatible = "renesas,salvator-x", "renesas,r8a7795"; aliases {
arch/arm64/boot/dts/renesas/r8a7795.dtsi +1 -69
112 lines not on this page · raw message
Signature · 6 lines
2.7.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Geert,
Thank you for the patch.
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Quoted 181 lines
Move support for the ES1.x revision of the R-Car H3 SoC into a separate file. To avoid duplication,
r8a7795-es1.dtsiincludesr8a7795.dtsi, add adds/removes/overrides device nodes and properties where needed.Switch
r8a7795-salvator-x.dtsandr8a7795-h3ulcb.dtsfromr8a7795.dtsitor8a7795-es1.dtsito preserve compatibility.Signed-off-by Geert Uytterhoeven <[email protected]>---
While currentlyr8a7795-es1.dtsionly 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>; }; &<name> { /delete-property/ <prop>; };v2:
- Use a separate file for ES1.x instead of for ES2.0, sor8a7795.dtsialways 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),
- Letr8a7795-es1.dtsiincluder8a7795.dtsi.--- arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | 83 +++++++++++++++++++ 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 | 70 +----------------- 4 files changed, 88 insertions(+), 73 deletions(-) create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi(quoted diff) +0
-0
b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsinew file mode 100644 index 0000000000000000..f1646334899f08cearch/arm64/boot/dts/renesas/r8a7795-es1.dtsi new file +83
-0@@ -0,0 +1,83 @@ +/* + * 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 { + vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; +};(quoted diff) +0
-0
b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dtsindexab352159de6572c9..60a1f4356b4b15c7100644arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +2
-2@@ -10,12 +10,12 @@ */ /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> / { - model = "Renesas H3ULCB board based on r8a7795"; + model = "Renesas H3ULCB board based on r8a7795 ES1.x"; compatible = "renesas,h3ulcb", "renesas,r8a7795"; aliases {(quoted diff) +0
-0
b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dtsindexf25241921067dcef..7758b479dd98d2e9100644arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +2
-2@@ -32,11 +32,11 @@ */ /dts-v1/; -#include "r8a7795.dtsi" +#include "r8a7795-es1.dtsi" #include <dt-bindings/gpio/gpio.h> / { - model = "Renesas Salvator-X board based on r8a7795"; + model = "Renesas Salvator-X board based on r8a7795 ES1.x"; compatible = "renesas,salvator-x", "renesas,r8a7795"; aliases {(quoted diff) +0
-0
b/arch/arm64/boot/dts/renesas/r8a7795.dtsiindexe99d6443b3e493a4..e1caa4e14593a299100644arch/arm64/boot/dts/renesas/r8a7795.dtsi +1
-1@@ -182,7 +182,7 @@ clock-frequency = <0>; }; - soc { + soc: soc { compatible = "simple-bus"; interrupt-parent = <&gic>;
arch/arm64/boot/dts/renesas/r8a7795.dtsi line 1278
Quoted 5 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0
-2@@ -1274,16 +1274,6 @@ status = "disabled"; }; - xhci1: usb@ee0400000 { - compatible = "renesas,xhci-r8a7795", "renesas,rcar-
gen3-xhci";
Quoted 96 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0
-64- 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"; - }; - usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a7795-usb-dmac", "renesas,usb-dmac";@@ -1568,14 +1558,6 @@ resets = <&cpg 614>; }; - 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>; - }; - vspbd: vsp@fe960000 { compatible = "renesas,vsp2"; reg = <0 0xfe960000 0 0x8000>;@@ -1633,25 +1615,6 @@ resets = <&cpg 610>; }; - 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>; - }; - vspd0: vsp@fea20000 { compatible = "renesas,vsp2"; reg = <0 0xfea20000 0 0x4000>;@@ -1709,25 +1672,6 @@ resets = <&cpg 601>; }; - 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@fe940000 { compatible = "renesas,fdp1"; reg = <0 0xfe940000 0 0x2400>;@@ -1748,16 +1692,6 @@ renesas,fcp = <&fcpf1>; }; - 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: display@feb00000 { compatible = "renesas,du-r8a7795"; reg = <0 0xfeb00000 0 0x80000>,
arch/arm64/boot/dts/renesas/r8a7795.dtsi line 1709
Quoted 1 line
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0
-0@@ -1775,8 +1709,6 @@ clock-names = "du.0", "du.1", "du.2", "du.3",
"lvds.0";
Quoted 7 lines
arch/arm64/boot/dts/renesas/r8a7795.dtsi +0
-2status = "disabled"; - vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; - ports { #address-cells = <1>; #size-cells = <0>;
Signature · 3 lines
Regards, Laurent Pinchart
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Quoted 11 lines · Laurent Pinchart
Hi Geert,
Thank you for the patch.
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
Quoted 3 lines
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
That makes sense to me.
Geert, will you respin this?
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Simon,
Quoted 8 lines · Simon Horman
Quoted 7 lines · Laurent Pinchart
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
Quoted 7 lines
Quoted 3 lines
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
That makes sense to me.
Geert, will you respin this?
Sure. The DTS parts are definitely not v4.12 material.
- For ES2.0, they depend on clk/pfc/rcar-sysc updates.
- For ES1.x, I don't want to break people's setup (scripts copying
r8a7795-salvator-x.dtb) prematurely.
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
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Quoted 15 lines · Geert Uytterhoeven
Hi Simon,
Quoted 12 lines · Simon Horman
Quoted 10 lines · Laurent Pinchart
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Quoted 8 lines
Quoted 3 lines
That makes sense to me.
Geert, will you respin this?
Sure. The DTS parts are definitely not v4.12 material.
- For ES2.0, they depend on clk/pfc/rcar-sysc updates.
- For ES1.x, I don't want to break people's setup (scripts copyingr8a7795-salvator-x.dtb) prematurely.
Ok.
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
In reply to Laurent PinchartHi Laurent,
Quoted 10 lines · Laurent Pinchart
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Why would you need a different compatible string? Can't you use soc_device_match() to handle ES1.x SoCs?
The different DU <-> VSPD topology is handled through the vsps property in DTS. Are the ports different, too? That can be handled in DTS.
The main reason why I kept the DU node in r8a7795.dtsi is that the board DTS refers to it. Sharing board DTS means there needs to be at least a placeholder node for the DU in r8a7795.dtsi, unless you want to keep on shuffling board overrides around.
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
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Geert,
Quoted 13 lines · On Thursday 20 Apr 2017 11:36:59 Geert Uytterhoeven wrote:
Quoted 11 lines · Laurent Pinchart
Quoted 6 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Quoted 5 lines
Why would you need a different compatible string? Can't you use
soc_device_match()to handle ES1.x SoCs?The different DU <-> VSPD topology is handled through the vsps property in DTS. Are the ports different, too? That can be handled in DTS.
My point (not expressed clearly) was that, as I'll need a different vsps property, I can as well go for a different compatible string.
Quoted 4 lines
The main reason why I kept the DU node in
r8a7795.dtsiis that the board DTS refers to it. Sharing board DTS means there needs to be at least a placeholder node for the DU inr8a7795.dtsi, unless you want to keep on shuffling board overrides around.
As the ports are identical it makes sense to share the same board DTS, I agree with you. We could override the compatible string in r8a7795-es1.dtsi and leave it blank in r8a7795.dtsi for now, as there's no driver support for ES2.0. That's a bit of a workaround as it shouldn't matter to DT whether driver support is available or not. On the other hand, leaving the vsps property out is a workaround too.
The current driver will fail probing if the number of VSPs is different than the number of CRTCs, so I believe you can keep the vsps property in r8a7795.dtsi with 3 VSPS without causing any problem. However, there's no DT bindings for the H3 ES2.0 DU yet, so we would end up merging DT without bindings, which is not good. I think that regardless of how we proceed, keeping the DU node in the ES2.0 .dtsi will be a violation of that policy.
Signature · 3 lines
Regards, Laurent Pinchart
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Laurent,
Quoted 14 lines · Laurent Pinchart
Quoted 13 lines · On Thursday 20 Apr 2017 11:36:59 Geert Uytterhoeven wrote:
Quoted 11 lines · Laurent Pinchart
Quoted 6 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso 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 "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Quoted 8 lines
Quoted 5 lines
Why would you need a different compatible string? Can't you use
soc_device_match()to handle ES1.x SoCs?The different DU <-> VSPD topology is handled through the vsps property in DTS. Are the ports different, too? That can be handled in DTS.
My point (not expressed clearly) was that, as I'll need a different vsps property, I can as well go for a different compatible string.
Do you need a different vsps property?
AFAIK, the current array links each DU channel to a VSPD. When a VSPD is shared between multiple channels, you can still link these channels to the same VSPD.
Or is my understanding incorrect?
Quoted 12 lines
Quoted 4 lines
The main reason why I kept the DU node in
r8a7795.dtsiis that the board DTS refers to it. Sharing board DTS means there needs to be at least a placeholder node for the DU inr8a7795.dtsi, unless you want to keep on shuffling board overrides around.As the ports are identical it makes sense to share the same board DTS, I agree with you. We could override the compatible string in
r8a7795-es1.dtsiand leave it blank inr8a7795.dtsifor now, as there's no driver support for ES2.0. That's a bit of a workaround as it shouldn't matter to DT whether driver support is available or not. On the other hand, leaving the vsps property out is a workaround too.
Quoted 6 lines
The current driver will fail probing if the number of VSPs is different than the number of CRTCs, so I believe you can keep the vsps property in
r8a7795.dtsiwith 3 VSPS without causing any problem. However, there's no DT bindings for the H3 ES2.0 DU yet, so we would end up merging DT without bindings, which is not good. I think that regardless of how we proceed, keeping the DU node in the ES2.0 .dtsi will be a violation of that policy.
What does the current driver do if the number of VSPs is the same as the number of CRTCs, but some VSPs are listed more than once?
I guess it will break in a subtle way, instead of refusing to probe?
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
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Geert,
Quoted 27 lines · On Thursday 20 Apr 2017 12:55:28 Geert Uytterhoeven wrote:
Quoted 19 lines · Laurent Pinchart
Quoted 18 lines · On Thursday 20 Apr 2017 11:36:59 Geert Uytterhoeven wrote:
Quoted 6 lines · Laurent Pinchart
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso it corresponds to R-Car H3 ES2.0 or later:
- The following devices no longer exist on ES2.0, and are thusremoved: fcpf2, fcpvd3, fcpvi2, fdp1-2, usb3-if1, vspd3, vspi2.Quoted 7 lines
Quoted 2 lines
- The DU <-> VSPD topology is different on ES2.0, hence remove the "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Why would you need a different compatible string? Can't you use
soc_device_match()to handle ES1.x SoCs?Quoted 6 lines
Quoted 3 lines
The different DU <-> VSPD topology is handled through the vsps property in
DTS. Are the ports different, too? That can be handled in DTS.My point (not expressed clearly) was that, as I'll need a different vsps property, I can as well go for a different compatible string.
Quoted 6 lines
Do you need a different vsps property?
AFAIK, the current array links each DU channel to a VSPD. When a VSPD is shared between multiple channels, you can still link these channels to the same VSPD.Or is my understanding incorrect?
Do you mean listing the same VSP multiple times in the vsps array ? Yes, from a bindings point of view I think that would work too. That is, until we get a ES2.1 that will have a completely different hardware topology :-)
Quoted 20 lines
Quoted 12 lines
Quoted 4 lines
The main reason why I kept the DU node in
r8a7795.dtsiis that the board DTS refers to it. Sharing board DTS means there needs to be at least a placeholder node for the DU inr8a7795.dtsi, unless you want to keep on shuffling board overrides around.As the ports are identical it makes sense to share the same board DTS, I agree with you. We could override the compatible string in
r8a7795-es1.dtsiand leave it blank inr8a7795.dtsifor now, as there's no driver support for ES2.0. That's a bit of a workaround as it shouldn't matter to DT whether driver support is available or not. On the other hand, leaving the vsps property out is a workaround too.Quoted 7 lines
The current driver will fail probing if the number of VSPs is different than the number of CRTCs, so I believe you can keep the vsps property in
r8a7795.dtsiwith 3 VSPS without causing any problem. However, there's no DT bindings for the H3 ES2.0 DU yet, so we would end up merging DT without bindings, which is not good. I think that regardless of how we proceed, keeping the DU node in the ES2.0 .dtsi will be a violation of that policy.
Quoted 3 lines
What does the current driver do if the number of VSPs is the same as the number of CRTCs, but some VSPs are listed more than once?
I guess it will break in a subtle way, instead of refusing to probe?
Correct, it will be messy.
Signature · 3 lines
Regards, Laurent Pinchart
PATCH v2 1/2 arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Laurent,
Quoted 28 lines · Laurent Pinchart
Quoted 27 lines · On Thursday 20 Apr 2017 12:55:28 Geert Uytterhoeven wrote:
Quoted 25 lines · Laurent Pinchart
Quoted 15 lines · On Thursday 20 Apr 2017 11:36:59 Geert Uytterhoeven wrote:
Quoted 6 lines · Laurent Pinchart
Quoted 5 lines · On Friday 24 Mar 2017 14:37:44 Geert Uytterhoeven wrote:
Update
r8a7795.dtsiso it corresponds to R-Car H3 ES2.0 or later:
- The following devices no longer exist on ES2.0, and are thusremoved: fcpf2, fcpvd3, fcpvi2, fdp1-2, usb3-if1, vspd3, vspi2.Quoted 7 lines
Quoted 2 lines
- The DU <-> VSPD topology is different on ES2.0, hence remove the "vsps" property from the DU node until the driver can handle this.
I think I'll need a different compatible string between ES1.x and ES2 for the DU. It could make sense to move the whole DU node to *-es1.dtsi. We can decide about that later when I'll have a DU driver prototype ready.
Quoted 6 lines
Why would you need a different compatible string? Can't you use
soc_device_match()to handle ES1.x SoCs?The different DU <-> VSPD topology is handled through the vsps property in
DTS. Are the ports different, too? That can be handled in DTS.My point (not expressed clearly) was that, as I'll need a different vsps property, I can as well go for a different compatible string.
Quoted 8 lines
Quoted 6 lines
Do you need a different vsps property?
AFAIK, the current array links each DU channel to a VSPD. When a VSPD is shared between multiple channels, you can still link these channels to the same VSPD.Or is my understanding incorrect?
Do you mean listing the same VSP multiple times in the vsps array ? Yes, from
Yes, that's what I mean.
Quoted 1 line
a bindings point of view I think that would work too. That is, until we get a
OK.
Quoted 1 line
ES2.1 that will have a completely different hardware topology :-)
We'll fix that after we have received ES2.1 documentation...
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
Geert Uytterhoeven
maintainerPATCH v2 2/2 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.
---
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
@@ -32,11 +32,11 @@ */ /dts-v1/; -#include "r8a7795-es1.dtsi" +#include "r8a7795.dtsi" #include <dt-bindings/gpio/gpio.h> / { - 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"; aliases {
Signature · 1 line
2.7.4
v2 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
In reply to Geert UytterhoevenQuoted 5 lines · Geert Uytterhoeven
Hi all,
This patch series adds preliminary support for Renesas Salvator-X development boards equipped with revision ES2.0 of the R-Car H3 Soc.
Quoted 10 lines
? - Patch 1 adds support for the R-Car H3 ES2.0 Soc, ????While this patch is safe as-is, as it doesn't affect any existing ????setups, it's probably a bit premature to apply it.
? - Patch 2 adds support for Salvator-X boards with R-Car H3 ES2.0. ????This patch does affect existing development setups, as it changes the
????name of the DTB for Salvator-X boards equipped with ES1.x SoCs. ????Given most developers have access to ES1.x only, this patch must not be
????applied yet.
Would it make more sense to add a new r8a7795-es2.dtsi and keep the current dtsi for es1? Having to load different device-trees based on which kernel is used would be rather nasty.
Signature · 2 lines
Sjoerd Simons Collabora Ltd.
v2 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Sjoerd,
Quoted 15 lines · Sjoerd Simons
Quoted 13 lines · Geert Uytterhoeven
This patch series adds preliminary support for Renesas Salvator-X development boards equipped with revision ES2.0 of the R-Car H3 Soc.
- Patch 1 adds support for the R-Car H3 ES2.0 Soc,
While this patch is safe as-is, as it doesn't affect any existing setups, it's probably a bit premature to apply it.
- Patch 2 adds support for Salvator-X boards with R-Car H3 ES2.0. This patch does affect existing development setups, as it changes
the
name of the DTB for Salvator-X boards equipped with ES1.x SoCs. Given most developers have access to ES1.x only, this patch must
not be
applied yet.
Quoted 3 lines
Would it make more sense to add a new
r8a7795-es2.dtsiand keep the current dtsi for es1? Having to load different device-trees based on which kernel is used would be rather nasty.
We definitely considered that option.
However, we concluded that in the end, we want to mainly support production SoCs. Hence the default files should represent the production version. Using a preproduction SoC can be considered a special case, and thus needs a file with a special esX ID in its name.
We do realize this can cause some inconveniences during the transition period, when most developers don't have access to ES2.0 SoCs yet, or have mixed environments of ES1.x and ES2.0.
Of course you can keep on using the current DTB (binary) on your H3 ES1.x boards, as long as you don't need to use devices not yet described in that DTB.
Thanks!
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
v2 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Quoted 30 lines · Geert Uytterhoeven
Hi Sjoerd,
Quoted 21 lines · Sjoerd Simons
Quoted 4 lines · Geert Uytterhoeven
This patch series adds preliminary support for Renesas Salvator-X development boards equipped with revision ES2.0 of the R-Car H3 Soc.
Quoted 15 lines
? - Patch 1 adds support for the R-Car H3 ES2.0 Soc, ????While this patch is safe as-is, as it doesn't affect any existing
????setups, it's probably a bit premature to apply it. ? - Patch 2 adds support for Salvator-X boards with R-Car H3 ES2.0.
????This patch does affect existing development setups, as it changes
the
????name of the DTB for Salvator-X boards equipped with ES1.x SoCs.
????Given most developers have access to ES1.x only, this patch must
not be
????applied yet.Quoted 4 lines
Would it make more sense to add a new
r8a7795-es2.dtsiand keep the current dtsi for es1? Having to load different device-trees based on
which kernel is used would be rather nasty.
Quoted 8 lines
We definitely considered that option.
However, we concluded that in the end, we want to mainly support production
SoCs.??Hence the default files should represent the production version.
Using a preproduction SoC can be considered a special case, and thus needs
a file with a special esX ID in its name.
The problem is that even though they are pre-production, these are out there and in active use, e.g. kernelci is at least doing automated testing on one of those in Kevins lab and should be an additional soonish in the Collabora lab.?
And for developers it'll be extra fun if halfway through a bisect the dts name changes..
Having a es2 in your dtb name might be a bit quirky, but it's really just a name without other meaning :).
Quoted 5 lines
We do realize this can cause some inconveniences during the transition period,
when most developers don't have access to ES2.0 SoCs yet, or have mixed
environments of ES1.x and ES2.0.
Heh yeah, i'd expect we'd have a mixed environment for quite a while given these boards are a bit too expensive to just throw in the trash..
Quoted 20 lines
Of course you can keep on using the current DTB (binary) on your H3 ES1.x
boards, as long as you don't need to use devices not yet described in that DTB.Thanks!
Gr{oetje,eeting}s,
????????????????????????Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linu x-m68k.orgIn 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
Signature · 2 lines
Sjoerd Simons Collabora Ltd.
v2 cover arm64: dts: r8a7795: Add support for R-Car H3 ES2.0
Hi Sjoerd,
Quoted 49 lines · Sjoerd Simons
Quoted 28 lines · Geert Uytterhoeven
Quoted 21 lines · Sjoerd Simons
Quoted 4 lines · Geert Uytterhoeven
This patch series adds preliminary support for Renesas Salvator-X development boards equipped with revision ES2.0 of the R-Car H3 Soc.
Quoted 15 lines
- Patch 1 adds support for the R-Car H3 ES2.0 Soc, While this patch is safe as-is, as it doesn't affect any
existing
setups, it's probably a bit premature to apply it.
- Patch 2 adds support for Salvator-X boards with R-Car H3
ES2.0.
This patch does affect existing development setups, as it
changes
the
name of the DTB for Salvator-X boards equipped with ES1.x
SoCs.
Given most developers have access to ES1.x only, this patch
must
not be
applied yet.Quoted 4 lines
Would it make more sense to add a new
r8a7795-es2.dtsiand keep the current dtsi for es1? Having to load different device-trees based on
which kernel is used would be rather nasty.Quoted 8 lines
We definitely considered that option.
However, we concluded that in the end, we want to mainly support production
SoCs. Hence the default files should represent the production version.
Using a preproduction SoC can be considered a special case, and thus needs
a file with a special esX ID in its name.The problem is that even though they are pre-production, these are out there and in active use, e.g. kernelci is at least doing automated testing on one of those in Kevins lab and should be an additional soonish in the Collabora lab.
And for developers it'll be extra fun if halfway through a bisect the dts name changes..
Having a es2 in your dtb name might be a bit quirky, but it's really just a name without other meaning :).
Quoted 13 lines
Quoted 5 lines
We do realize this can cause some inconveniences during the transition period,
when most developers don't have access to ES2.0 SoCs yet, or have mixed
environments of ES1.x and ES2.0.Heh yeah, i'd expect we'd have a mixed environment for quite a while given these boards are a bit too expensive to just throw in the trash..
Quoted 4 lines
Of course you can keep on using the current DTB (binary) on your H3 ES1.x
boards, as long as you don't need to use devices not yet described in that DTB.
We can keep on discussing this for a while, this is definitely v4.13+ material.
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