Message ID | 20241021103617.653386-3-inochiama@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
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
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