Message ID | 20241021103617.653386-3-inochiama@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | riscv: sophgo: Add ethernet support for SG2044 | expand |
On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > with some extra clock. > > Add necessary compatible string for this device. > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > --- > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > 2 files changed, 146 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 3c4007cb65f8..69f6bb36970b 100644 > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > @@ -99,6 +99,7 @@ properties: > - snps,dwmac-5.30a > - snps,dwxgmac > - snps,dwxgmac-2.10 > + - sophgo,sg2044-dwmac > - starfive,jh7100-dwmac > - starfive,jh7110-dwmac > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > new file mode 100644 > index 000000000000..93c41550b0b6 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > @@ -0,0 +1,145 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: StarFive JH7110 DWMAC glue layer > + > +maintainers: > + - Inochi Amaoto <inochiama@gmail.com> > + > +select: > + properties: > + compatible: > + contains: > + enum: > + - sophgo,sg2044-dwmac > + required: > + - compatible > + > +properties: > + compatible: > + items: > + - const: sophgo,sg2044-dwmac > + - const: snps,dwmac-5.30a > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: GMAC main clock > + - description: PTP clock > + - description: TX clock > + > + clock-names: > + items: > + - const: stmmaceth > + - const: ptp_ref > + - const: tx > + > + sophgo,syscon: How many dwmac instances does the sg2044 have? > + $ref: /schemas/types.yaml#/definitions/phandle-array > + items: > + - items: > + - description: phandle to syscon that configures phy > + - description: offset of phy mode register > + - description: length of the phy mode register > + description: > + A phandle to syscon with two arguments that configure phy mode. > + The argument one is the offset of phy mode register, the > + argument two is the length of phy mode register. > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - interrupts > + - interrupt-names > + - resets > + - reset-names > + > +allOf: > + - $ref: snps,dwmac.yaml# > + > + - if: > + properties: > + compatible: > + contains: > + const: sophgo,sg2044-dwmac Why does this have to be applied conditionally? There's only one compatible in the binding, can't you apply these unconditionally? Cheers, Conor. > + then: > + properties: > + interrupts: > + minItems: 1 > + maxItems: 1 > + > + interrupt-names: > + minItems: 1 > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + reset-names: > + const: stmmaceth > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + > + ethernet@30006000 { > + compatible = "sophgo,sg2044-dwmac", "snps,dwmac-5.30a"; > + reg = <0x30006000 0x4000>; > + clocks = <&clk 151>, <&clk 152>, <&clk 154>; > + clock-names = "stmmaceth", "ptp_ref", "tx"; > + interrupt-parent = <&intc>; > + interrupts = <296 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "macirq"; > + resets = <&rst 30>; > + reset-names = "stmmaceth"; > + snps,multicast-filter-bins = <0>; > + snps,perfect-filter-entries = <1>; > + snps,aal; > + snps,tso; > + snps,txpbl = <32>; > + snps,rxpbl = <32>; > + snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; > + snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; > + snps,axi-config = <&gmac0_stmmac_axi_setup>; > + status = "disabled"; > + > + gmac0_mtl_rx_setup: rx-queues-config { > + snps,rx-queues-to-use = <8>; > + snps,rx-sched-wsp; > + queue0 {}; > + queue1 {}; > + queue2 {}; > + queue3 {}; > + queue4 {}; > + queue5 {}; > + queue6 {}; > + queue7 {}; > + }; > + > + gmac0_mtl_tx_setup: tx-queues-config { > + snps,tx-queues-to-use = <8>; > + queue0 {}; > + queue1 {}; > + queue2 {}; > + queue3 {}; > + queue4 {}; > + queue5 {}; > + queue6 {}; > + queue7 {}; > + }; > + > + gmac0_stmmac_axi_setup: stmmac-axi-config { > + snps,blen = <16 8 4 0 0 0 0>; > + snps,wr_osr_lmt = <1>; > + snps,rd_osr_lmt = <2>; > + }; > + }; > -- > 2.47.0 >
On Tue, Oct 22, 2024 at 06:28:06PM +0100, Conor Dooley wrote: > On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > with some extra clock. > > > > Add necessary compatible string for this device. > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > --- > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > 2 files changed, 146 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > index 3c4007cb65f8..69f6bb36970b 100644 > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > @@ -99,6 +99,7 @@ properties: > > - snps,dwmac-5.30a > > - snps,dwxgmac > > - snps,dwxgmac-2.10 > > + - sophgo,sg2044-dwmac > > - starfive,jh7100-dwmac > > - starfive,jh7110-dwmac > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > new file mode 100644 > > index 000000000000..93c41550b0b6 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > @@ -0,0 +1,145 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: StarFive JH7110 DWMAC glue layer > > + > > +maintainers: > > + - Inochi Amaoto <inochiama@gmail.com> > > + > > +select: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - sophgo,sg2044-dwmac > > + required: > > + - compatible > > + > > +properties: > > + compatible: > > + items: > > + - const: sophgo,sg2044-dwmac > > + - const: snps,dwmac-5.30a > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + items: > > + - description: GMAC main clock > > + - description: PTP clock > > + - description: TX clock > > + > > + clock-names: > > + items: > > + - const: stmmaceth > > + - const: ptp_ref > > + - const: tx > > + > > + sophgo,syscon: > > How many dwmac instances does the sg2044 have? > Only one, there is another 100G dwxgmac instance, but it does not use this syscon. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + items: > > + - items: > > + - description: phandle to syscon that configures phy > > + - description: offset of phy mode register > > + - description: length of the phy mode register > > + description: > > + A phandle to syscon with two arguments that configure phy mode. > > + The argument one is the offset of phy mode register, the > > + argument two is the length of phy mode register. > > + > > +required: > > + - compatible > > + - reg > > + - clocks > > + - clock-names > > + - interrupts > > + - interrupt-names > > + - resets > > + - reset-names > > + > > +allOf: > > + - $ref: snps,dwmac.yaml# > > + > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: sophgo,sg2044-dwmac > > Why does this have to be applied conditionally? There's only one > compatible in the binding, can't you apply these unconditionally? > > > Cheers, > Conor. > I think it can apply it unconditionally. I will fix it. Regards, Inochi > > + then: > > + properties: > > + interrupts: > > + minItems: 1 > > + maxItems: 1 > > + > > + interrupt-names: > > + minItems: 1 > > + maxItems: 1 > > + > > + resets: > > + maxItems: 1 > > + > > + reset-names: > > + const: stmmaceth > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + > > + ethernet@30006000 { > > + compatible = "sophgo,sg2044-dwmac", "snps,dwmac-5.30a"; > > + reg = <0x30006000 0x4000>; > > + clocks = <&clk 151>, <&clk 152>, <&clk 154>; > > + clock-names = "stmmaceth", "ptp_ref", "tx"; > > + interrupt-parent = <&intc>; > > + interrupts = <296 IRQ_TYPE_LEVEL_HIGH>; > > + interrupt-names = "macirq"; > > + resets = <&rst 30>; > > + reset-names = "stmmaceth"; > > + snps,multicast-filter-bins = <0>; > > + snps,perfect-filter-entries = <1>; > > + snps,aal; > > + snps,tso; > > + snps,txpbl = <32>; > > + snps,rxpbl = <32>; > > + snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; > > + snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; > > + snps,axi-config = <&gmac0_stmmac_axi_setup>; > > + status = "disabled"; > > + > > + gmac0_mtl_rx_setup: rx-queues-config { > > + snps,rx-queues-to-use = <8>; > > + snps,rx-sched-wsp; > > + queue0 {}; > > + queue1 {}; > > + queue2 {}; > > + queue3 {}; > > + queue4 {}; > > + queue5 {}; > > + queue6 {}; > > + queue7 {}; > > + }; > > + > > + gmac0_mtl_tx_setup: tx-queues-config { > > + snps,tx-queues-to-use = <8>; > > + queue0 {}; > > + queue1 {}; > > + queue2 {}; > > + queue3 {}; > > + queue4 {}; > > + queue5 {}; > > + queue6 {}; > > + queue7 {}; > > + }; > > + > > + gmac0_stmmac_axi_setup: stmmac-axi-config { > > + snps,blen = <16 8 4 0 0 0 0>; > > + snps,wr_osr_lmt = <1>; > > + snps,rd_osr_lmt = <2>; > > + }; > > + }; > > -- > > 2.47.0 > >
On Wed, Oct 23, 2024 at 08:31:24AM +0800, Inochi Amaoto wrote: > On Tue, Oct 22, 2024 at 06:28:06PM +0100, Conor Dooley wrote: > > On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > > with some extra clock. > > > > > > Add necessary compatible string for this device. > > > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > > --- > > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > > 2 files changed, 146 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > index 3c4007cb65f8..69f6bb36970b 100644 > > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > @@ -99,6 +99,7 @@ properties: > > > - snps,dwmac-5.30a > > > - snps,dwxgmac > > > - snps,dwxgmac-2.10 > > > + - sophgo,sg2044-dwmac > > > - starfive,jh7100-dwmac > > > - starfive,jh7110-dwmac > > > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > new file mode 100644 > > > index 000000000000..93c41550b0b6 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > @@ -0,0 +1,145 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: StarFive JH7110 DWMAC glue layer > > > + > > > +maintainers: > > > + - Inochi Amaoto <inochiama@gmail.com> > > > + > > > +select: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - sophgo,sg2044-dwmac > > > + required: > > > + - compatible > > > + > > > +properties: > > > + compatible: > > > + items: > > > + - const: sophgo,sg2044-dwmac > > > + - const: snps,dwmac-5.30a > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + clocks: > > > + items: > > > + - description: GMAC main clock > > > + - description: PTP clock > > > + - description: TX clock > > > + > > > + clock-names: > > > + items: > > > + - const: stmmaceth > > > + - const: ptp_ref > > > + - const: tx > > > + > > > + sophgo,syscon: > > > > How many dwmac instances does the sg2044 have? > > > > Only one, there is another 100G dwxgmac instance, but it does not > use this syscon. That dwxgmac is a different device, with a different compatible etc?
On Wed, Oct 23, 2024 at 09:49:34PM +0100, Conor Dooley wrote: > On Wed, Oct 23, 2024 at 08:31:24AM +0800, Inochi Amaoto wrote: > > On Tue, Oct 22, 2024 at 06:28:06PM +0100, Conor Dooley wrote: > > > On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > > > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > > > with some extra clock. > > > > > > > > Add necessary compatible string for this device. > > > > > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > > > --- > > > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > > > 2 files changed, 146 insertions(+) > > > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > index 3c4007cb65f8..69f6bb36970b 100644 > > > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > @@ -99,6 +99,7 @@ properties: > > > > - snps,dwmac-5.30a > > > > - snps,dwxgmac > > > > - snps,dwxgmac-2.10 > > > > + - sophgo,sg2044-dwmac > > > > - starfive,jh7100-dwmac > > > > - starfive,jh7110-dwmac > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > new file mode 100644 > > > > index 000000000000..93c41550b0b6 > > > > --- /dev/null > > > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > @@ -0,0 +1,145 @@ > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > +%YAML 1.2 > > > > +--- > > > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > + > > > > +title: StarFive JH7110 DWMAC glue layer > > > > + > > > > +maintainers: > > > > + - Inochi Amaoto <inochiama@gmail.com> > > > > + > > > > +select: > > > > + properties: > > > > + compatible: > > > > + contains: > > > > + enum: > > > > + - sophgo,sg2044-dwmac > > > > + required: > > > > + - compatible > > > > + > > > > +properties: > > > > + compatible: > > > > + items: > > > > + - const: sophgo,sg2044-dwmac > > > > + - const: snps,dwmac-5.30a > > > > + > > > > + reg: > > > > + maxItems: 1 > > > > + > > > > + clocks: > > > > + items: > > > > + - description: GMAC main clock > > > > + - description: PTP clock > > > > + - description: TX clock > > > > + > > > > + clock-names: > > > > + items: > > > > + - const: stmmaceth > > > > + - const: ptp_ref > > > > + - const: tx > > > > + > > > > + sophgo,syscon: > > > > > > How many dwmac instances does the sg2044 have? > > > > > > > Only one, there is another 100G dwxgmac instance, but it does not > > use this syscon. > > That dwxgmac is a different device, with a different compatible etc? Yes, it needs a different compatiable, and maybe a new binding is needed since the 100G and 1G IP are different. Regards, Inochi
Inochi Amaoto wrote: > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > with some extra clock. > > Add necessary compatible string for this device. > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > --- > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > 2 files changed, 146 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 3c4007cb65f8..69f6bb36970b 100644 > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > @@ -99,6 +99,7 @@ properties: > - snps,dwmac-5.30a > - snps,dwxgmac > - snps,dwxgmac-2.10 > + - sophgo,sg2044-dwmac > - starfive,jh7100-dwmac > - starfive,jh7110-dwmac > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > new file mode 100644 > index 000000000000..93c41550b0b6 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > @@ -0,0 +1,145 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: StarFive JH7110 DWMAC glue layer I think you forgot to change this when you copied the binding. /Emil > + > +maintainers: > + - Inochi Amaoto <inochiama@gmail.com> > + > +select: > + properties: > + compatible: > + contains: > + enum: > + - sophgo,sg2044-dwmac > + required: > + - compatible > + > +properties: > + compatible: > + items: > + - const: sophgo,sg2044-dwmac > + - const: snps,dwmac-5.30a > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: GMAC main clock > + - description: PTP clock > + - description: TX clock > + > + clock-names: > + items: > + - const: stmmaceth > + - const: ptp_ref > + - const: tx > + > + sophgo,syscon: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + items: > + - items: > + - description: phandle to syscon that configures phy > + - description: offset of phy mode register > + - description: length of the phy mode register > + description: > + A phandle to syscon with two arguments that configure phy mode. > + The argument one is the offset of phy mode register, the > + argument two is the length of phy mode register. > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - interrupts > + - interrupt-names > + - resets > + - reset-names > + > +allOf: > + - $ref: snps,dwmac.yaml# > + > + - if: > + properties: > + compatible: > + contains: > + const: sophgo,sg2044-dwmac > + then: > + properties: > + interrupts: > + minItems: 1 > + maxItems: 1 > + > + interrupt-names: > + minItems: 1 > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + reset-names: > + const: stmmaceth > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + > + ethernet@30006000 { > + compatible = "sophgo,sg2044-dwmac", "snps,dwmac-5.30a"; > + reg = <0x30006000 0x4000>; > + clocks = <&clk 151>, <&clk 152>, <&clk 154>; > + clock-names = "stmmaceth", "ptp_ref", "tx"; > + interrupt-parent = <&intc>; > + interrupts = <296 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "macirq"; > + resets = <&rst 30>; > + reset-names = "stmmaceth"; > + snps,multicast-filter-bins = <0>; > + snps,perfect-filter-entries = <1>; > + snps,aal; > + snps,tso; > + snps,txpbl = <32>; > + snps,rxpbl = <32>; > + snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; > + snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; > + snps,axi-config = <&gmac0_stmmac_axi_setup>; > + status = "disabled"; > + > + gmac0_mtl_rx_setup: rx-queues-config { > + snps,rx-queues-to-use = <8>; > + snps,rx-sched-wsp; > + queue0 {}; > + queue1 {}; > + queue2 {}; > + queue3 {}; > + queue4 {}; > + queue5 {}; > + queue6 {}; > + queue7 {}; > + }; > + > + gmac0_mtl_tx_setup: tx-queues-config { > + snps,tx-queues-to-use = <8>; > + queue0 {}; > + queue1 {}; > + queue2 {}; > + queue3 {}; > + queue4 {}; > + queue5 {}; > + queue6 {}; > + queue7 {}; > + }; > + > + gmac0_stmmac_axi_setup: stmmac-axi-config { > + snps,blen = <16 8 4 0 0 0 0>; > + snps,wr_osr_lmt = <1>; > + snps,rd_osr_lmt = <2>; > + }; > + }; > -- > 2.47.0 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
On Wed, Oct 23, 2024 at 07:41:28PM -0400, Emil Renner Berthing wrote: > Inochi Amaoto wrote: > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > with some extra clock. > > > > Add necessary compatible string for this device. > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > --- > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > 2 files changed, 146 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > index 3c4007cb65f8..69f6bb36970b 100644 > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > @@ -99,6 +99,7 @@ properties: > > - snps,dwmac-5.30a > > - snps,dwxgmac > > - snps,dwxgmac-2.10 > > + - sophgo,sg2044-dwmac > > - starfive,jh7100-dwmac > > - starfive,jh7110-dwmac > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > new file mode 100644 > > index 000000000000..93c41550b0b6 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > @@ -0,0 +1,145 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: StarFive JH7110 DWMAC glue layer > > I think you forgot to change this when you copied the binding. > > /Emil > Thanks, I will fix it. Regards, Inochi
On Thu, Oct 24, 2024 at 06:38:29AM +0800, Inochi Amaoto wrote: > On Wed, Oct 23, 2024 at 09:49:34PM +0100, Conor Dooley wrote: > > On Wed, Oct 23, 2024 at 08:31:24AM +0800, Inochi Amaoto wrote: > > > On Tue, Oct 22, 2024 at 06:28:06PM +0100, Conor Dooley wrote: > > > > On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > > > > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > > > > with some extra clock. > > > > > > > > > > Add necessary compatible string for this device. > > > > > > > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > > > > --- > > > > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > > > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > > > > 2 files changed, 146 insertions(+) > > > > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > index 3c4007cb65f8..69f6bb36970b 100644 > > > > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > @@ -99,6 +99,7 @@ properties: > > > > > - snps,dwmac-5.30a > > > > > - snps,dwxgmac > > > > > - snps,dwxgmac-2.10 > > > > > + - sophgo,sg2044-dwmac > > > > > - starfive,jh7100-dwmac > > > > > - starfive,jh7110-dwmac > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > new file mode 100644 > > > > > index 000000000000..93c41550b0b6 > > > > > --- /dev/null > > > > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > @@ -0,0 +1,145 @@ > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > +%YAML 1.2 > > > > > +--- > > > > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > + > > > > > +title: StarFive JH7110 DWMAC glue layer > > > > > + > > > > > +maintainers: > > > > > + - Inochi Amaoto <inochiama@gmail.com> > > > > > + > > > > > +select: > > > > > + properties: > > > > > + compatible: > > > > > + contains: > > > > > + enum: > > > > > + - sophgo,sg2044-dwmac > > > > > + required: > > > > > + - compatible > > > > > + > > > > > +properties: > > > > > + compatible: > > > > > + items: > > > > > + - const: sophgo,sg2044-dwmac > > > > > + - const: snps,dwmac-5.30a > > > > > + > > > > > + reg: > > > > > + maxItems: 1 > > > > > + > > > > > + clocks: > > > > > + items: > > > > > + - description: GMAC main clock > > > > > + - description: PTP clock > > > > > + - description: TX clock > > > > > + > > > > > + clock-names: > > > > > + items: > > > > > + - const: stmmaceth > > > > > + - const: ptp_ref > > > > > + - const: tx > > > > > + > > > > > + sophgo,syscon: > > > > > > > > How many dwmac instances does the sg2044 have? > > > > > > > > > > Only one, there is another 100G dwxgmac instance, but it does not > > > use this syscon. > > > > That dwxgmac is a different device, with a different compatible etc? > > Yes, it needs a different compatiable, and maybe a new binding is needed > since the 100G and 1G IP are different. In that case, you don't /need/ a syscon property at all, much less one with offsets. You can just look up the syscon by compatible and hard code the offset in the driver.
On Thu, Oct 24, 2024 at 06:04:31PM +0100, Conor Dooley wrote: > On Thu, Oct 24, 2024 at 06:38:29AM +0800, Inochi Amaoto wrote: > > On Wed, Oct 23, 2024 at 09:49:34PM +0100, Conor Dooley wrote: > > > On Wed, Oct 23, 2024 at 08:31:24AM +0800, Inochi Amaoto wrote: > > > > On Tue, Oct 22, 2024 at 06:28:06PM +0100, Conor Dooley wrote: > > > > > On Mon, Oct 21, 2024 at 06:36:15PM +0800, Inochi Amaoto wrote: > > > > > > The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC > > > > > > with some extra clock. > > > > > > > > > > > > Add necessary compatible string for this device. > > > > > > > > > > > > Signed-off-by: Inochi Amaoto <inochiama@gmail.com> > > > > > > --- > > > > > > .../devicetree/bindings/net/snps,dwmac.yaml | 1 + > > > > > > .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ > > > > > > 2 files changed, 146 insertions(+) > > > > > > create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > > index 3c4007cb65f8..69f6bb36970b 100644 > > > > > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > > > @@ -99,6 +99,7 @@ properties: > > > > > > - snps,dwmac-5.30a > > > > > > - snps,dwxgmac > > > > > > - snps,dwxgmac-2.10 > > > > > > + - sophgo,sg2044-dwmac > > > > > > - starfive,jh7100-dwmac > > > > > > - starfive,jh7110-dwmac > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > new file mode 100644 > > > > > > index 000000000000..93c41550b0b6 > > > > > > --- /dev/null > > > > > > +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml > > > > > > @@ -0,0 +1,145 @@ > > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > > +%YAML 1.2 > > > > > > +--- > > > > > > +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > + > > > > > > +title: StarFive JH7110 DWMAC glue layer > > > > > > + > > > > > > +maintainers: > > > > > > + - Inochi Amaoto <inochiama@gmail.com> > > > > > > + > > > > > > +select: > > > > > > + properties: > > > > > > + compatible: > > > > > > + contains: > > > > > > + enum: > > > > > > + - sophgo,sg2044-dwmac > > > > > > + required: > > > > > > + - compatible > > > > > > + > > > > > > +properties: > > > > > > + compatible: > > > > > > + items: > > > > > > + - const: sophgo,sg2044-dwmac > > > > > > + - const: snps,dwmac-5.30a > > > > > > + > > > > > > + reg: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + clocks: > > > > > > + items: > > > > > > + - description: GMAC main clock > > > > > > + - description: PTP clock > > > > > > + - description: TX clock > > > > > > + > > > > > > + clock-names: > > > > > > + items: > > > > > > + - const: stmmaceth > > > > > > + - const: ptp_ref > > > > > > + - const: tx > > > > > > + > > > > > > + sophgo,syscon: > > > > > > > > > > How many dwmac instances does the sg2044 have? > > > > > > > > > > > > > Only one, there is another 100G dwxgmac instance, but it does not > > > > use this syscon. > > > > > > That dwxgmac is a different device, with a different compatible etc? > > > > Yes, it needs a different compatiable, and maybe a new binding is needed > > since the 100G and 1G IP are different. > > In that case, you don't /need/ a syscon property at all, much less one > with offsets. You can just look up the syscon by compatible and hard > code the offset in the driver. Good, look up the syscon is a good idea. Thanks for this suggestion. Regards, Inochi
diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index 3c4007cb65f8..69f6bb36970b 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -99,6 +99,7 @@ properties: - snps,dwmac-5.30a - snps,dwxgmac - snps,dwxgmac-2.10 + - sophgo,sg2044-dwmac - starfive,jh7100-dwmac - starfive,jh7110-dwmac diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml new file mode 100644 index 000000000000..93c41550b0b6 --- /dev/null +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml @@ -0,0 +1,145 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/sophgo,sg2044-dwmac.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: StarFive JH7110 DWMAC glue layer + +maintainers: + - Inochi Amaoto <inochiama@gmail.com> + +select: + properties: + compatible: + contains: + enum: + - sophgo,sg2044-dwmac + required: + - compatible + +properties: + compatible: + items: + - const: sophgo,sg2044-dwmac + - const: snps,dwmac-5.30a + + reg: + maxItems: 1 + + clocks: + items: + - description: GMAC main clock + - description: PTP clock + - description: TX clock + + clock-names: + items: + - const: stmmaceth + - const: ptp_ref + - const: tx + + sophgo,syscon: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: phandle to syscon that configures phy + - description: offset of phy mode register + - description: length of the phy mode register + description: + A phandle to syscon with two arguments that configure phy mode. + The argument one is the offset of phy mode register, the + argument two is the length of phy mode register. + +required: + - compatible + - reg + - clocks + - clock-names + - interrupts + - interrupt-names + - resets + - reset-names + +allOf: + - $ref: snps,dwmac.yaml# + + - if: + properties: + compatible: + contains: + const: sophgo,sg2044-dwmac + then: + properties: + interrupts: + minItems: 1 + maxItems: 1 + + interrupt-names: + minItems: 1 + maxItems: 1 + + resets: + maxItems: 1 + + reset-names: + const: stmmaceth + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + + ethernet@30006000 { + compatible = "sophgo,sg2044-dwmac", "snps,dwmac-5.30a"; + reg = <0x30006000 0x4000>; + clocks = <&clk 151>, <&clk 152>, <&clk 154>; + clock-names = "stmmaceth", "ptp_ref", "tx"; + interrupt-parent = <&intc>; + interrupts = <296 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "macirq"; + resets = <&rst 30>; + reset-names = "stmmaceth"; + snps,multicast-filter-bins = <0>; + snps,perfect-filter-entries = <1>; + snps,aal; + snps,tso; + snps,txpbl = <32>; + snps,rxpbl = <32>; + snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; + snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; + snps,axi-config = <&gmac0_stmmac_axi_setup>; + status = "disabled"; + + gmac0_mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use = <8>; + snps,rx-sched-wsp; + queue0 {}; + queue1 {}; + queue2 {}; + queue3 {}; + queue4 {}; + queue5 {}; + queue6 {}; + queue7 {}; + }; + + gmac0_mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use = <8>; + queue0 {}; + queue1 {}; + queue2 {}; + queue3 {}; + queue4 {}; + queue5 {}; + queue6 {}; + queue7 {}; + }; + + gmac0_stmmac_axi_setup: stmmac-axi-config { + snps,blen = <16 8 4 0 0 0 0>; + snps,wr_osr_lmt = <1>; + snps,rd_osr_lmt = <2>; + }; + };
The GMAC IP on SG2044 is almost a standard Synopsys DesignWare MAC with some extra clock. Add necessary compatible string for this device. Signed-off-by: Inochi Amaoto <inochiama@gmail.com> --- .../devicetree/bindings/net/snps,dwmac.yaml | 1 + .../bindings/net/sophgo,sg2044-dwmac.yaml | 145 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml