diff mbox series

[net-next,v5,11/13] ARM: dts: r9a06g032: describe GMAC2

Message ID 20220519153107.696864-12-clement.leger@bootlin.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series add support for Renesas RZ/N1 ethernet subsystem devices | expand

Commit Message

Clément Léger May 19, 2022, 3:31 p.m. UTC
RZ/N1 SoC includes two MAC named GMACx that are compatible with the
"snps,dwmac" driver. GMAC1 is connected directly to the MII converter
port 1. GMAC2 however can be used as the MAC for the switch CPU
management port or can be muxed to be connected directly to the MII
converter port 2. This commit add description for the GMAC2 which will
be used by the switch description.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
 arch/arm/boot/dts/r9a06g032.dtsi | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Geert Uytterhoeven May 20, 2022, 7:18 a.m. UTC | #1
Hi Clément

On Thu, May 19, 2022 at 5:32 PM Clément Léger <clement.leger@bootlin.com> wrote:
> RZ/N1 SoC includes two MAC named GMACx that are compatible with the
> "snps,dwmac" driver. GMAC1 is connected directly to the MII converter
> port 1. GMAC2 however can be used as the MAC for the switch CPU
> management port or can be muxed to be connected directly to the MII
> converter port 2. This commit add description for the GMAC2 which will
> be used by the switch description.
>
> Signed-off-by: Clément Léger <clement.leger@bootlin.com>

Thanks for your patch!

> --- a/arch/arm/boot/dts/r9a06g032.dtsi
> +++ b/arch/arm/boot/dts/r9a06g032.dtsi
> @@ -200,6 +200,23 @@ nand_controller: nand-controller@40102000 {
>                         status = "disabled";
>                 };
>
> +               gmac2: ethernet@44002000 {
> +                       compatible = "snps,dwmac";

Does this need an SoC-specific compatible value?

> +                       reg = <0x44002000 0x2000>;
> +                       interrupt-parent = <&gic>;
> +                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
> +                                    <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
> +                       interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
> +                       clock-names = "stmmaceth";
> +                       clocks = <&sysctrl R9A06G032_HCLK_GMAC1>;

Missing "power-domains", also in the DT bindings.
The driver already uses Runtime PM.

> +                       snps,multicast-filter-bins = <256>;
> +                       snps,perfect-filter-entries = <128>;
> +                       tx-fifo-depth = <2048>;
> +                       rx-fifo-depth = <4096>;
> +                       status = "disabled";
> +               };
> +
>                 eth_miic: eth-miic@44030000 {
>                         compatible = "renesas,r9a06g032-miic", "renesas,rzn1-miic";
>                         #address-cells = <1>;

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
Clément Léger May 20, 2022, 8:13 a.m. UTC | #2
Le Fri, 20 May 2022 09:18:58 +0200,
Geert Uytterhoeven <geert@linux-m68k.org> a écrit :

> Hi Clément
> 
> On Thu, May 19, 2022 at 5:32 PM Clément Léger <clement.leger@bootlin.com> wrote:
> > RZ/N1 SoC includes two MAC named GMACx that are compatible with the
> > "snps,dwmac" driver. GMAC1 is connected directly to the MII converter
> > port 1. GMAC2 however can be used as the MAC for the switch CPU
> > management port or can be muxed to be connected directly to the MII
> > converter port 2. This commit add description for the GMAC2 which will
> > be used by the switch description.
> >
> > Signed-off-by: Clément Léger <clement.leger@bootlin.com>  
> 
> Thanks for your patch!
> 
> > --- a/arch/arm/boot/dts/r9a06g032.dtsi
> > +++ b/arch/arm/boot/dts/r9a06g032.dtsi
> > @@ -200,6 +200,23 @@ nand_controller: nand-controller@40102000 {
> >                         status = "disabled";
> >                 };
> >
> > +               gmac2: ethernet@44002000 {
> > +                       compatible = "snps,dwmac";  
> 
> Does this need an SoC-specific compatible value?

Indeed, it might be useful to introduce a specific SoC compatible since
in a near future, there might be some specific support for that gmac.
Here is an overview of the gmac connection on the SoC:

                                          ┌─────────┐   ┌──────────┐
                                          │         │   │          │
                                          │  GMAC2  │   │  GMAC1   │
                                          │         │   │          │
                                          └───┬─────┘   └─────┬────┘
                                              │               │
                                              │               │
                                              │               │
                                         ┌────▼──────┐        │
                                         │           │        │
            ┌────────────────────────────┤  SWITCH   │        │
            │                            │           │        │
            │          ┌─────────────────┴─┬────┬────┘        │
            │          │            ┌──────┘    │             │
            │          │            │           │             │
       ┌────▼──────────▼────────────▼───────────▼─────────────▼────┐
       │                      MII Converter                        │
       │                                                           │
       │                                                           │
       │ port 1      port 2       port 3      port 4       port 5  │
       └───────────────────────────────────────────────────────────┘

As you can see, the GMAC1 is directly connected to MIIC converter and
thus will need a "pcs-handle" property to point on the MII converter
port whereas the GMAC2 is directly connected to the switch in GMII.

Is "renesas,r9a06g032-gmac2", "renesas,rzn1-switch-gmac2" looks ok for
you for this one ?

Thanks,

Clément

> 
> > +                       reg = <0x44002000 0x2000>;
> > +                       interrupt-parent = <&gic>;
> > +                       interrupts = <GIC_SPI 37
> > IRQ_TYPE_LEVEL_HIGH>,
> > +                                    <GIC_SPI 39
> > IRQ_TYPE_LEVEL_HIGH>,
> > +                                    <GIC_SPI 38
> > IRQ_TYPE_LEVEL_HIGH>;
> > +                       interrupt-names = "macirq", "eth_wake_irq",
> > "eth_lpi";
> > +                       clock-names = "stmmaceth";
> > +                       clocks = <&sysctrl R9A06G032_HCLK_GMAC1>;  
> 
> Missing "power-domains", also in the DT bindings.
> The driver already uses Runtime PM.

Ok,I'll add that to the DT and modify the DWMAC bindings.

> 
> > +                       snps,multicast-filter-bins = <256>;
> > +                       snps,perfect-filter-entries = <128>;
> > +                       tx-fifo-depth = <2048>;
> > +                       rx-fifo-depth = <4096>;
> > +                       status = "disabled";
> > +               };
> > +
> >                 eth_miic: eth-miic@44030000 {
> >                         compatible = "renesas,r9a06g032-miic",
> > "renesas,rzn1-miic"; #address-cells = <1>;  
> 
> 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
Geert Uytterhoeven May 20, 2022, 8:25 a.m. UTC | #3
Hi Clément,

On Fri, May 20, 2022 at 10:14 AM Clément Léger
<clement.leger@bootlin.com> wrote:
> Le Fri, 20 May 2022 09:18:58 +0200,
> Geert Uytterhoeven <geert@linux-m68k.org> a écrit :
> > On Thu, May 19, 2022 at 5:32 PM Clément Léger <clement.leger@bootlin.com> wrote:
> > > RZ/N1 SoC includes two MAC named GMACx that are compatible with the
> > > "snps,dwmac" driver. GMAC1 is connected directly to the MII converter
> > > port 1. GMAC2 however can be used as the MAC for the switch CPU
> > > management port or can be muxed to be connected directly to the MII
> > > converter port 2. This commit add description for the GMAC2 which will
> > > be used by the switch description.
> > >
> > > Signed-off-by: Clément Léger <clement.leger@bootlin.com>

> > > --- a/arch/arm/boot/dts/r9a06g032.dtsi
> > > +++ b/arch/arm/boot/dts/r9a06g032.dtsi
> > > @@ -200,6 +200,23 @@ nand_controller: nand-controller@40102000 {
> > >                         status = "disabled";
> > >                 };
> > >
> > > +               gmac2: ethernet@44002000 {
> > > +                       compatible = "snps,dwmac";
> >
> > Does this need an SoC-specific compatible value?
>
> Indeed, it might be useful to introduce a specific SoC compatible since
> in a near future, there might be some specific support for that gmac.
> Here is an overview of the gmac connection on the SoC:
>
>                                           ┌─────────┐   ┌──────────┐
>                                           │         │   │          │
>                                           │  GMAC2  │   │  GMAC1   │
>                                           │         │   │          │
>                                           └───┬─────┘   └─────┬────┘
>                                               │               │
>                                               │               │
>                                               │               │
>                                          ┌────▼──────┐        │
>                                          │           │        │
>             ┌────────────────────────────┤  SWITCH   │        │
>             │                            │           │        │
>             │          ┌─────────────────┴─┬────┬────┘        │
>             │          │            ┌──────┘    │             │
>             │          │            │           │             │
>        ┌────▼──────────▼────────────▼───────────▼─────────────▼────┐
>        │                      MII Converter                        │
>        │                                                           │
>        │                                                           │
>        │ port 1      port 2       port 3      port 4       port 5  │
>        └───────────────────────────────────────────────────────────┘
>
> As you can see, the GMAC1 is directly connected to MIIC converter and
> thus will need a "pcs-handle" property to point on the MII converter
> port whereas the GMAC2 is directly connected to the switch in GMII.
>
> Is "renesas,r9a06g032-gmac2", "renesas,rzn1-switch-gmac2" looks ok for
> you for this one ?

Why "switch" in the family-specific value, but not in the SoC-specific
value?

Are GMAC1 and GMAC2 really different, or are they identical, and is
the only difference in the wiring, which can be detected at run-time
using this "pcs-handle" property? If they're identical, they should
use the same compatible value.

Thanks!

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
Clément Léger May 20, 2022, 8:31 a.m. UTC | #4
Le Fri, 20 May 2022 10:25:37 +0200,
Geert Uytterhoeven <geert@linux-m68k.org> a écrit :

> Hi Clément,
> 
> On Fri, May 20, 2022 at 10:14 AM Clément Léger
> <clement.leger@bootlin.com> wrote:
> > Le Fri, 20 May 2022 09:18:58 +0200,
> > Geert Uytterhoeven <geert@linux-m68k.org> a écrit :  
> > > On Thu, May 19, 2022 at 5:32 PM Clément Léger <clement.leger@bootlin.com> wrote:  
> > > > RZ/N1 SoC includes two MAC named GMACx that are compatible with the
> > > > "snps,dwmac" driver. GMAC1 is connected directly to the MII converter
> > > > port 1. GMAC2 however can be used as the MAC for the switch CPU
> > > > management port or can be muxed to be connected directly to the MII
> > > > converter port 2. This commit add description for the GMAC2 which will
> > > > be used by the switch description.
> > > >
> > > > Signed-off-by: Clément Léger <clement.leger@bootlin.com>  
> 
> > > > --- a/arch/arm/boot/dts/r9a06g032.dtsi
> > > > +++ b/arch/arm/boot/dts/r9a06g032.dtsi
> > > > @@ -200,6 +200,23 @@ nand_controller: nand-controller@40102000 {
> > > >                         status = "disabled";
> > > >                 };
> > > >
> > > > +               gmac2: ethernet@44002000 {
> > > > +                       compatible = "snps,dwmac";  
> > >
> > > Does this need an SoC-specific compatible value?  
> >
> > Indeed, it might be useful to introduce a specific SoC compatible since
> > in a near future, there might be some specific support for that gmac.
> > Here is an overview of the gmac connection on the SoC:
> >
> >                                           ┌─────────┐   ┌──────────┐
> >                                           │         │   │          │
> >                                           │  GMAC2  │   │  GMAC1   │
> >                                           │         │   │          │
> >                                           └───┬─────┘   └─────┬────┘
> >                                               │               │
> >                                               │               │
> >                                               │               │
> >                                          ┌────▼──────┐        │
> >                                          │           │        │
> >             ┌────────────────────────────┤  SWITCH   │        │
> >             │                            │           │        │
> >             │          ┌─────────────────┴─┬────┬────┘        │
> >             │          │            ┌──────┘    │             │
> >             │          │            │           │             │
> >        ┌────▼──────────▼────────────▼───────────▼─────────────▼────┐
> >        │                      MII Converter                        │
> >        │                                                           │
> >        │                                                           │
> >        │ port 1      port 2       port 3      port 4       port 5  │
> >        └───────────────────────────────────────────────────────────┘
> >
> > As you can see, the GMAC1 is directly connected to MIIC converter and
> > thus will need a "pcs-handle" property to point on the MII converter
> > port whereas the GMAC2 is directly connected to the switch in GMII.
> >
> > Is "renesas,r9a06g032-gmac2", "renesas,rzn1-switch-gmac2" looks ok
> > for you for this one ?  
> 
> Why "switch" in the family-specific value, but not in the SoC-specific
> value?

That's a typo, switch should be removed.

> 
> Are GMAC1 and GMAC2 really different, or are they identical, and is
> the only difference in the wiring, which can be detected at run-time
> using this "pcs-handle" property? If they're identical, they should
> use the same compatible value.

They are actually identical except the requirement for a "pcs-handle"
for gmac1. I thought about using different compatible to enforce this by
making it "required" with the "renesas,r9a06g032-gmac1" compatible but
not the "renesas,r9a06g032-gmac2" one. If it's ok for you to let it
optional and use a single compatible, I'm ok with that !


Thanks !

> 
> Thanks!
> 
> 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
Geert Uytterhoeven May 20, 2022, 8:48 a.m. UTC | #5
Hi Clément,

On Fri, May 20, 2022 at 10:33 AM Clément Léger
<clement.leger@bootlin.com> wrote:
> Le Fri, 20 May 2022 10:25:37 +0200,
> Geert Uytterhoeven <geert@linux-m68k.org> a écrit :
> > On Fri, May 20, 2022 at 10:14 AM Clément Léger
> > <clement.leger@bootlin.com> wrote:
> > > Le Fri, 20 May 2022 09:18:58 +0200,
> > > Geert Uytterhoeven <geert@linux-m68k.org> a écrit :
> > > > On Thu, May 19, 2022 at 5:32 PM Clément Léger <clement.leger@bootlin.com> wrote:
> > > > > RZ/N1 SoC includes two MAC named GMACx that are compatible with the
> > > > > "snps,dwmac" driver. GMAC1 is connected directly to the MII converter
> > > > > port 1. GMAC2 however can be used as the MAC for the switch CPU
> > > > > management port or can be muxed to be connected directly to the MII
> > > > > converter port 2. This commit add description for the GMAC2 which will
> > > > > be used by the switch description.
> > > > >
> > > > > Signed-off-by: Clément Léger <clement.leger@bootlin.com>
> >
> > > > > --- a/arch/arm/boot/dts/r9a06g032.dtsi
> > > > > +++ b/arch/arm/boot/dts/r9a06g032.dtsi
> > > > > @@ -200,6 +200,23 @@ nand_controller: nand-controller@40102000 {
> > > > >                         status = "disabled";
> > > > >                 };
> > > > >
> > > > > +               gmac2: ethernet@44002000 {
> > > > > +                       compatible = "snps,dwmac";
> > > >
> > > > Does this need an SoC-specific compatible value?
> > >
> > > Indeed, it might be useful to introduce a specific SoC compatible since
> > > in a near future, there might be some specific support for that gmac.
> > > Here is an overview of the gmac connection on the SoC:
> > >
> > >                                           ┌─────────┐   ┌──────────┐
> > >                                           │         │   │          │
> > >                                           │  GMAC2  │   │  GMAC1   │
> > >                                           │         │   │          │
> > >                                           └───┬─────┘   └─────┬────┘
> > >                                               │               │
> > >                                               │               │
> > >                                               │               │
> > >                                          ┌────▼──────┐        │
> > >                                          │           │        │
> > >             ┌────────────────────────────┤  SWITCH   │        │
> > >             │                            │           │        │
> > >             │          ┌─────────────────┴─┬────┬────┘        │
> > >             │          │            ┌──────┘    │             │
> > >             │          │            │           │             │
> > >        ┌────▼──────────▼────────────▼───────────▼─────────────▼────┐
> > >        │                      MII Converter                        │
> > >        │                                                           │
> > >        │                                                           │
> > >        │ port 1      port 2       port 3      port 4       port 5  │
> > >        └───────────────────────────────────────────────────────────┘
> > >
> > > As you can see, the GMAC1 is directly connected to MIIC converter and
> > > thus will need a "pcs-handle" property to point on the MII converter
> > > port whereas the GMAC2 is directly connected to the switch in GMII.
> > >
> > > Is "renesas,r9a06g032-gmac2", "renesas,rzn1-switch-gmac2" looks ok
> > > for you for this one ?
> >
> > Why "switch" in the family-specific value, but not in the SoC-specific
> > value?
>
> That's a typo, switch should be removed.

OK.

> > Are GMAC1 and GMAC2 really different, or are they identical, and is
> > the only difference in the wiring, which can be detected at run-time
> > using this "pcs-handle" property? If they're identical, they should
> > use the same compatible value.
>
> They are actually identical except the requirement for a "pcs-handle"
> for gmac1. I thought about using different compatible to enforce this by
> making it "required" with the "renesas,r9a06g032-gmac1" compatible but
> not the "renesas,r9a06g032-gmac2" one. If it's ok for you to let it
> optional and use a single compatible, I'm ok with that !

OK to make it optional. Thanks!

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
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/r9a06g032.dtsi b/arch/arm/boot/dts/r9a06g032.dtsi
index 0051fe9f44fd..31c4b2e2950a 100644
--- a/arch/arm/boot/dts/r9a06g032.dtsi
+++ b/arch/arm/boot/dts/r9a06g032.dtsi
@@ -200,6 +200,23 @@  nand_controller: nand-controller@40102000 {
 			status = "disabled";
 		};
 
+		gmac2: ethernet@44002000 {
+			compatible = "snps,dwmac";
+			reg = <0x44002000 0x2000>;
+			interrupt-parent = <&gic>;
+			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
+			clock-names = "stmmaceth";
+			clocks = <&sysctrl R9A06G032_HCLK_GMAC1>;
+			snps,multicast-filter-bins = <256>;
+			snps,perfect-filter-entries = <128>;
+			tx-fifo-depth = <2048>;
+			rx-fifo-depth = <4096>;
+			status = "disabled";
+		};
+
 		eth_miic: eth-miic@44030000 {
 			compatible = "renesas,r9a06g032-miic", "renesas,rzn1-miic";
 			#address-cells = <1>;