* [PATCH 0/2] Add support to identify RZ/Five SoC
@ 2022-07-21 22:12 Lad Prabhakar
2022-07-21 22:12 ` [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document " Lad Prabhakar
2022-07-21 22:12 ` [PATCH 2/2] soc: renesas: Identify " Lad Prabhakar
0 siblings, 2 replies; 8+ messages in thread
From: Lad Prabhakar @ 2022-07-21 22:12 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring,
Krzysztof Kozlowski, linux-renesas-soc, devicetree
Cc: linux-kernel, Prabhakar, Biju Das, Lad Prabhakar
Hi All,
This patch series adds support to identify the Renesas RZ/Five SoC.
Below is the output tested on SMARC EVK based on RZ/Five SoC:
/ # dmesg | grep Detect
[ 0.065484] Detected Renesas RZ/Five r9a07g043 Rev 0
/ # cat /sys/devices/soc0/family
RZ/Five
/ # cat /sys/devices/soc0/machine
Renesas SMARC EVK based on r9a07g043
/ # cat /sys/devices/soc0/revision
0
/ # cat /sys/devices/soc0/soc_id
r9a07g043
/ #
Cheers,
Prabhakar
Lad Prabhakar (2):
dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
soc: renesas: Identify RZ/Five SoC
.../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
drivers/soc/renesas/Kconfig | 10 ++++
drivers/soc/renesas/renesas-soc.c | 14 +++++
3 files changed, 63 insertions(+), 17 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
2022-07-21 22:12 [PATCH 0/2] Add support to identify RZ/Five SoC Lad Prabhakar
@ 2022-07-21 22:12 ` Lad Prabhakar
2022-07-22 9:31 ` Geert Uytterhoeven
2022-07-21 22:12 ` [PATCH 2/2] soc: renesas: Identify " Lad Prabhakar
1 sibling, 1 reply; 8+ messages in thread
From: Lad Prabhakar @ 2022-07-21 22:12 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring,
Krzysztof Kozlowski, linux-renesas-soc, devicetree
Cc: linux-kernel, Prabhakar, Biju Das, Lad Prabhakar
Document RZ/Five (R9A07G043) SYSC bindings. SYSC block found on the
RZ/Five SoC is almost identical to one found on the RZ/G2L (and alike)
SoC's. To differentiate RZ/G2UL from RZ/Five, "-rzfive" is included in
the compatible string for the RZ/Five SoC as there are no interrupts
from the SYSC block to the core.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
.../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
1 file changed, 39 insertions(+), 17 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
index ce2875c89329..bdaf05f8b29b 100644
--- a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
+++ b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
@@ -20,35 +20,57 @@ description:
properties:
compatible:
enum:
- - renesas,r9a07g043-sysc # RZ/G2UL
- - renesas,r9a07g044-sysc # RZ/G2{L,LC}
- - renesas,r9a07g054-sysc # RZ/V2L
+ - renesas,r9a07g043-rzfive-sysc # RZ/Five
+ - renesas,r9a07g043-sysc # RZ/G2UL
+ - renesas,r9a07g044-sysc # RZ/G2{L,LC}
+ - renesas,r9a07g054-sysc # RZ/V2L
reg:
maxItems: 1
- interrupts:
- items:
- - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
- - description: CA55 Software Standby Mode release request interrupt
- - description: CM33 Software Standby Mode release request interrupt
- - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
+ interrupts: true
- interrupt-names:
- items:
- - const: lpm_int
- - const: ca55stbydone_int
- - const: cm33stbyr_int
- - const: ca55_deny
+ interrupt-names: true
required:
- compatible
- reg
- - interrupts
- - interrupt-names
additionalProperties: false
+allOf:
+ - if:
+ not:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,r9a07g043-rzfive-sysc
+ then:
+ properties:
+ interrupts:
+ items:
+ - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
+ - description: CA55 Software Standby Mode release request interrupt
+ - description: CM33 Software Standby Mode release request interrupt
+ - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
+
+ interrupt-names:
+ items:
+ - const: lpm_int
+ - const: ca55stbydone_int
+ - const: cm33stbyr_int
+ - const: ca55_deny
+
+ required:
+ - interrupts
+ - interrupt-names
+
+ else:
+ properties:
+ interrupts: false
+ interrupt-names: false
+
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] soc: renesas: Identify RZ/Five SoC
2022-07-21 22:12 [PATCH 0/2] Add support to identify RZ/Five SoC Lad Prabhakar
2022-07-21 22:12 ` [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document " Lad Prabhakar
@ 2022-07-21 22:12 ` Lad Prabhakar
2022-07-22 9:37 ` Geert Uytterhoeven
1 sibling, 1 reply; 8+ messages in thread
From: Lad Prabhakar @ 2022-07-21 22:12 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring,
Krzysztof Kozlowski, linux-renesas-soc, devicetree
Cc: linux-kernel, Prabhakar, Biju Das, Lad Prabhakar
Add support for identifying the (R9A07G043) RZ/Five SoC.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/soc/renesas/Kconfig | 10 ++++++++++
drivers/soc/renesas/renesas-soc.c | 14 ++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index 390f52109cb7..2e3508fbae53 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -333,6 +333,16 @@ config ARCH_R9A09G011
endif # ARM64
+if RISCV
+
+config ARCH_R9A07G043
+ bool "RISCV Platform support for RZ/Five"
+ select ARCH_RZG2L
+ help
+ This enables support for the Renesas RZ/Five SoC.
+
+endif # RISCV
+
config RST_RCAR
bool "Reset Controller support for R-Car" if COMPILE_TEST
diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index d171f1b635c7..1a31692fc884 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -50,6 +50,10 @@ static const struct renesas_family fam_rza2 __initconst __maybe_unused = {
.name = "RZ/A2",
};
+static const struct renesas_family fam_rzfive __initconst __maybe_unused = {
+ .name = "RZ/Five",
+};
+
static const struct renesas_family fam_rzg1 __initconst __maybe_unused = {
.name = "RZ/G1",
.reg = 0xff000044, /* PRR (Product Register) */
@@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
.id = 0x40,
};
+static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
+ .family = &fam_rzfive,
+ .id = 0x847c447,
+};
+
static const struct renesas_soc soc_rz_g1h __initconst __maybe_unused = {
.family = &fam_rzg1,
.id = 0x45,
@@ -358,8 +367,12 @@ static const struct of_device_id renesas_socs[] __initconst = {
{ .compatible = "renesas,r8a779g0", .data = &soc_rcar_v4h },
#endif
#if defined(CONFIG_ARCH_R9A07G043)
+#ifdef CONFIG_RISCV
+ { .compatible = "renesas,r9a07g043", .data = &soc_rz_five },
+#else
{ .compatible = "renesas,r9a07g043", .data = &soc_rz_g2ul },
#endif
+#endif
#if defined(CONFIG_ARCH_R9A07G044)
{ .compatible = "renesas,r9a07g044", .data = &soc_rz_g2l },
#endif
@@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {
static const struct of_device_id renesas_ids[] __initconst = {
{ .compatible = "renesas,bsid", .data = &id_bsid },
+ { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
2022-07-21 22:12 ` [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document " Lad Prabhakar
@ 2022-07-22 9:31 ` Geert Uytterhoeven
2022-07-22 10:21 ` Lad, Prabhakar
0 siblings, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2022-07-22 9:31 UTC (permalink / raw)
To: Lad Prabhakar
Cc: Magnus Damm, Rob Herring, Krzysztof Kozlowski, Linux-Renesas,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Linux Kernel Mailing List, Prabhakar, Biju Das
Hi Prabhakar,
On Fri, Jul 22, 2022 at 12:15 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> Document RZ/Five (R9A07G043) SYSC bindings. SYSC block found on the
> RZ/Five SoC is almost identical to one found on the RZ/G2L (and alike)
> SoC's. To differentiate RZ/G2UL from RZ/Five, "-rzfive" is included in
> the compatible string for the RZ/Five SoC as there are no interrupts
> from the SYSC block to the core.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Thanks for your patch!
> ---
> .../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
> 1 file changed, 39 insertions(+), 17 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> index ce2875c89329..bdaf05f8b29b 100644
> --- a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> +++ b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> @@ -20,35 +20,57 @@ description:
> properties:
> compatible:
> enum:
> - - renesas,r9a07g043-sysc # RZ/G2UL
> - - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> - - renesas,r9a07g054-sysc # RZ/V2L
> + - renesas,r9a07g043-rzfive-sysc # RZ/Five
renesas,r9a07g043f-sysc?
But I'm wondering if we really need a different compatible value?
It looks like both blocks differ only in external wiring, so if
anything needs to be handled differently (the removed/added registers
are related to CPU topology), that can be inferred from the system
topology (or even #ifdef CONFIG_{ARM64,RISCV} ;-)
> + - renesas,r9a07g043-sysc # RZ/G2UL
> + - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> + - renesas,r9a07g054-sysc # RZ/V2L
>
> reg:
> maxItems: 1
>
> - interrupts:
> - items:
> - - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> - - description: CA55 Software Standby Mode release request interrupt
> - - description: CM33 Software Standby Mode release request interrupt
> - - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> + interrupts: true
>
> - interrupt-names:
> - items:
> - - const: lpm_int
> - - const: ca55stbydone_int
> - - const: cm33stbyr_int
> - - const: ca55_deny
> + interrupt-names: true
>
> required:
> - compatible
> - reg
> - - interrupts
> - - interrupt-names
>
> additionalProperties: false
>
> +allOf:
> + - if:
> + not:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,r9a07g043-rzfive-sysc
> + then:
> + properties:
> + interrupts:
> + items:
> + - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> + - description: CA55 Software Standby Mode release request interrupt
> + - description: CM33 Software Standby Mode release request interrupt
> + - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> +
> + interrupt-names:
> + items:
> + - const: lpm_int
> + - const: ca55stbydone_int
> + - const: cm33stbyr_int
> + - const: ca55_deny
> +
> + required:
> + - interrupts
> + - interrupt-names
> +
> + else:
> + properties:
> + interrupts: false
> + interrupt-names: false
Do all interrupts{,-names} have to be moved?
Wouldn't it be sufficient to just have
if [...]
then:
required:
- interrupts
- interrupt-names
else:
properties:
interrupts: false
interrupt-names: false
?
But again, without a new compatible value, you could just make
interrupts{,-names} not required?
> +
> examples:
> - |
> #include <dt-bindings/interrupt-controller/arm-gic.h>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] soc: renesas: Identify RZ/Five SoC
2022-07-21 22:12 ` [PATCH 2/2] soc: renesas: Identify " Lad Prabhakar
@ 2022-07-22 9:37 ` Geert Uytterhoeven
2022-07-22 10:30 ` Lad, Prabhakar
0 siblings, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2022-07-22 9:37 UTC (permalink / raw)
To: Lad Prabhakar
Cc: Magnus Damm, Rob Herring, Krzysztof Kozlowski, Linux-Renesas,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Linux Kernel Mailing List, Prabhakar, Biju Das
Hi Prabhakar,
On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> Add support for identifying the (R9A07G043) RZ/Five SoC.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Thanks for your patch!
> --- a/drivers/soc/renesas/Kconfig
> +++ b/drivers/soc/renesas/Kconfig
> @@ -333,6 +333,16 @@ config ARCH_R9A09G011
>
> endif # ARM64
>
> +if RISCV
> +
> +config ARCH_R9A07G043
> + bool "RISCV Platform support for RZ/Five"
RISC-V
> + select ARCH_RZG2L
> + help
> + This enables support for the Renesas RZ/Five SoC.
> +
> +endif # RISCV
> +
> config RST_RCAR
> bool "Reset Controller support for R-Car" if COMPILE_TEST
>
> @@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
> .id = 0x40,
> };
>
> +static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
> + .family = &fam_rzfive,
> + .id = 0x847c447,
The Hardware User's Manual Rev.1.00 says H’x841_C447?
> @@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {
>
> static const struct of_device_id renesas_ids[] __initconst = {
> { .compatible = "renesas,bsid", .data = &id_bsid },
> + { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
This change might not be needed (cfr. my comments on patch 1/2).
The rest LGTM.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
2022-07-22 9:31 ` Geert Uytterhoeven
@ 2022-07-22 10:21 ` Lad, Prabhakar
2022-07-22 10:24 ` Geert Uytterhoeven
0 siblings, 1 reply; 8+ messages in thread
From: Lad, Prabhakar @ 2022-07-22 10:21 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Lad Prabhakar, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Linux-Renesas,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Linux Kernel Mailing List, Biju Das
Hi Geert,
Thank you for the review.
On Fri, Jul 22, 2022 at 10:31 AM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Hi Prabhakar,
>
> On Fri, Jul 22, 2022 at 12:15 AM Lad Prabhakar
> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> > Document RZ/Five (R9A07G043) SYSC bindings. SYSC block found on the
> > RZ/Five SoC is almost identical to one found on the RZ/G2L (and alike)
> > SoC's. To differentiate RZ/G2UL from RZ/Five, "-rzfive" is included in
> > the compatible string for the RZ/Five SoC as there are no interrupts
> > from the SYSC block to the core.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>
> Thanks for your patch!
>
> > ---
> > .../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
> > 1 file changed, 39 insertions(+), 17 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > index ce2875c89329..bdaf05f8b29b 100644
> > --- a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > +++ b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > @@ -20,35 +20,57 @@ description:
> > properties:
> > compatible:
> > enum:
> > - - renesas,r9a07g043-sysc # RZ/G2UL
> > - - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> > - - renesas,r9a07g054-sysc # RZ/V2L
> > + - renesas,r9a07g043-rzfive-sysc # RZ/Five
>
> renesas,r9a07g043f-sysc?
>
Agreed.
> But I'm wondering if we really need a different compatible value?
> It looks like both blocks differ only in external wiring, so if
> anything needs to be handled differently (the removed/added registers
> are related to CPU topology), that can be inferred from the system
> topology (or even #ifdef CONFIG_{ARM64,RISCV} ;-)
>
Good point, but I wonder if we would end up in too many #ifdef
CONFIG_{ARM64,RISCV} checks. If thats OK I will stick with
"renesas,r9a07g043-sysc"
> > + - renesas,r9a07g043-sysc # RZ/G2UL
> > + - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> > + - renesas,r9a07g054-sysc # RZ/V2L
> >
> > reg:
> > maxItems: 1
> >
> > - interrupts:
> > - items:
> > - - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> > - - description: CA55 Software Standby Mode release request interrupt
> > - - description: CM33 Software Standby Mode release request interrupt
> > - - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> > + interrupts: true
> >
> > - interrupt-names:
> > - items:
> > - - const: lpm_int
> > - - const: ca55stbydone_int
> > - - const: cm33stbyr_int
> > - - const: ca55_deny
> > + interrupt-names: true
> >
> > required:
> > - compatible
> > - reg
> > - - interrupts
> > - - interrupt-names
> >
> > additionalProperties: false
> >
> > +allOf:
> > + - if:
> > + not:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - renesas,r9a07g043-rzfive-sysc
> > + then:
> > + properties:
> > + interrupts:
> > + items:
> > + - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> > + - description: CA55 Software Standby Mode release request interrupt
> > + - description: CM33 Software Standby Mode release request interrupt
> > + - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> > +
> > + interrupt-names:
> > + items:
> > + - const: lpm_int
> > + - const: ca55stbydone_int
> > + - const: cm33stbyr_int
> > + - const: ca55_deny
> > +
> > + required:
> > + - interrupts
> > + - interrupt-names
> > +
> > + else:
> > + properties:
> > + interrupts: false
> > + interrupt-names: false
>
> Do all interrupts{,-names} have to be moved?
> Wouldn't it be sufficient to just have
>
Agreed.
> if [...]
> then:
> required:
> - interrupts
> - interrupt-names
> else:
> properties:
> interrupts: false
> interrupt-names: false
>
> ?
>
> But again, without a new compatible value, you could just make
> interrupts{,-names} not required?
>
You mean we just make it optional for all the SoC's?
Cheers,
Prabhakar
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
2022-07-22 10:21 ` Lad, Prabhakar
@ 2022-07-22 10:24 ` Geert Uytterhoeven
0 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2022-07-22 10:24 UTC (permalink / raw)
To: Lad, Prabhakar
Cc: Lad Prabhakar, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Linux-Renesas,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Linux Kernel Mailing List, Biju Das
Hi Prabhakar,
On Fri, Jul 22, 2022 at 12:21 PM Lad, Prabhakar
<prabhakar.csengg@gmail.com> wrote:
> On Fri, Jul 22, 2022 at 10:31 AM Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
> > On Fri, Jul 22, 2022 at 12:15 AM Lad Prabhakar
> > <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> > > Document RZ/Five (R9A07G043) SYSC bindings. SYSC block found on the
> > > RZ/Five SoC is almost identical to one found on the RZ/G2L (and alike)
> > > SoC's. To differentiate RZ/G2UL from RZ/Five, "-rzfive" is included in
> > > the compatible string for the RZ/Five SoC as there are no interrupts
> > > from the SYSC block to the core.
> > >
> > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > Thanks for your patch!
> >
> > > ---
> > > .../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
> > > 1 file changed, 39 insertions(+), 17 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > > index ce2875c89329..bdaf05f8b29b 100644
> > > --- a/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > > +++ b/Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml
> > > @@ -20,35 +20,57 @@ description:
> > > properties:
> > > compatible:
> > > enum:
> > > - - renesas,r9a07g043-sysc # RZ/G2UL
> > > - - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> > > - - renesas,r9a07g054-sysc # RZ/V2L
> > > + - renesas,r9a07g043-rzfive-sysc # RZ/Five
> >
> > renesas,r9a07g043f-sysc?
> >
> Agreed.
>
> > But I'm wondering if we really need a different compatible value?
> > It looks like both blocks differ only in external wiring, so if
> > anything needs to be handled differently (the removed/added registers
> > are related to CPU topology), that can be inferred from the system
> > topology (or even #ifdef CONFIG_{ARM64,RISCV} ;-)
> >
> Good point, but I wonder if we would end up in too many #ifdef
> CONFIG_{ARM64,RISCV} checks. If thats OK I will stick with
> "renesas,r9a07g043-sysc"
>
> > > + - renesas,r9a07g043-sysc # RZ/G2UL
> > > + - renesas,r9a07g044-sysc # RZ/G2{L,LC}
> > > + - renesas,r9a07g054-sysc # RZ/V2L
> > >
> > > reg:
> > > maxItems: 1
> > >
> > > - interrupts:
> > > - items:
> > > - - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> > > - - description: CA55 Software Standby Mode release request interrupt
> > > - - description: CM33 Software Standby Mode release request interrupt
> > > - - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> > > + interrupts: true
> > >
> > > - interrupt-names:
> > > - items:
> > > - - const: lpm_int
> > > - - const: ca55stbydone_int
> > > - - const: cm33stbyr_int
> > > - - const: ca55_deny
> > > + interrupt-names: true
> > >
> > > required:
> > > - compatible
> > > - reg
> > > - - interrupts
> > > - - interrupt-names
> > >
> > > additionalProperties: false
> > >
> > > +allOf:
> > > + - if:
> > > + not:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - renesas,r9a07g043-rzfive-sysc
> > > + then:
> > > + properties:
> > > + interrupts:
> > > + items:
> > > + - description: CA55/CM33 Sleep/Software Standby Mode request interrupt
> > > + - description: CA55 Software Standby Mode release request interrupt
> > > + - description: CM33 Software Standby Mode release request interrupt
> > > + - description: CA55 ACE Asynchronous Bridge Master/Slave interface deny request interrupt
> > > +
> > > + interrupt-names:
> > > + items:
> > > + - const: lpm_int
> > > + - const: ca55stbydone_int
> > > + - const: cm33stbyr_int
> > > + - const: ca55_deny
> > > +
> > > + required:
> > > + - interrupts
> > > + - interrupt-names
> > > +
> > > + else:
> > > + properties:
> > > + interrupts: false
> > > + interrupt-names: false
> >
> > Do all interrupts{,-names} have to be moved?
> > Wouldn't it be sufficient to just have
> >
> Agreed.
>
> > if [...]
> > then:
> > required:
> > - interrupts
> > - interrupt-names
> > else:
> > properties:
> > interrupts: false
> > interrupt-names: false
> >
> > ?
> >
> > But again, without a new compatible value, you could just make
> > interrupts{,-names} not required?
> >
> You mean we just make it optional for all the SoC's?
Indeed.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] soc: renesas: Identify RZ/Five SoC
2022-07-22 9:37 ` Geert Uytterhoeven
@ 2022-07-22 10:30 ` Lad, Prabhakar
0 siblings, 0 replies; 8+ messages in thread
From: Lad, Prabhakar @ 2022-07-22 10:30 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Lad Prabhakar, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Linux-Renesas,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Linux Kernel Mailing List, Biju Das
Hi Geert,
Thank you for the review.
On Fri, Jul 22, 2022 at 10:37 AM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Hi Prabhakar,
>
> On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> > Add support for identifying the (R9A07G043) RZ/Five SoC.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>
> Thanks for your patch!
>
> > --- a/drivers/soc/renesas/Kconfig
> > +++ b/drivers/soc/renesas/Kconfig
> > @@ -333,6 +333,16 @@ config ARCH_R9A09G011
> >
> > endif # ARM64
> >
> > +if RISCV
> > +
> > +config ARCH_R9A07G043
> > + bool "RISCV Platform support for RZ/Five"
>
> RISC-V
>
Agreed.
> > + select ARCH_RZG2L
> > + help
> > + This enables support for the Renesas RZ/Five SoC.
> > +
> > +endif # RISCV
> > +
> > config RST_RCAR
> > bool "Reset Controller support for R-Car" if COMPILE_TEST
> >
>
> > @@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
> > .id = 0x40,
> > };
> >
> > +static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
> > + .family = &fam_rzfive,
> > + .id = 0x847c447,
>
> The Hardware User's Manual Rev.1.00 says H’x841_C447?
>
You caught a typo in theHW manual, H’x841_C447 is the value for
RZ/G2L, for RZ/Five the value is H’x847_C447 (and can be verified on
page 146 SYS_DEVID register).
Below is the log from RZ/Five SMARC EVK:
U-Boot SPL 2020.10-ge84e786a34-dirty (Feb 25 2022 - 17:10:04 +0000)
Trying to boot from NOR
U-Boot 2020.10-ge84e786a34-dirty (Feb 25 2022 - 17:10:04 +0000)
CPU: rv64imafdc
Model: smarc-rzf
DRAM: 896 MiB
MMC: sh-sdhi: 0, sh-sdhi: 1
Loading Environment from MMC... OK
In: serial@1004b800
Out: serial@1004b800
Err: serial@1004b800
Net: eth0: ethernet@11c30000
Hit any key to stop autoboot: 0
=> md 0x11020a04 1
11020a04: 0847c447 G.G.
=>
> > @@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {
> >
> > static const struct of_device_id renesas_ids[] __initconst = {
> > { .compatible = "renesas,bsid", .data = &id_bsid },
> > + { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
>
> This change might not be needed (cfr. my comments on patch 1/2).
>
Ok.
Cheers,
Prabhakar
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-07-22 10:31 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-21 22:12 [PATCH 0/2] Add support to identify RZ/Five SoC Lad Prabhakar
2022-07-21 22:12 ` [PATCH 1/2] dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document " Lad Prabhakar
2022-07-22 9:31 ` Geert Uytterhoeven
2022-07-22 10:21 ` Lad, Prabhakar
2022-07-22 10:24 ` Geert Uytterhoeven
2022-07-21 22:12 ` [PATCH 2/2] soc: renesas: Identify " Lad Prabhakar
2022-07-22 9:37 ` Geert Uytterhoeven
2022-07-22 10:30 ` Lad, Prabhakar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.