Re: [PATCH net-next 09/10] dt-bindings: net: snps,dwmac: add per channel irq support

Jisheng Zhang
2023-07-26T16:00:40Z

On Wed, Jul 26, 2023 at 09:24:39AM -0600, Rob Herring wrote:
> On Mon, Jul 24, 2023 at 12:10:28AM +0800, Jisheng Zhang wrote:
> > The IP supports per channel interrupt, add support for this usage case.
> >
> > Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> > ---
> > .../devicetree/bindings/net/snps,dwmac.yaml | 23 +++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> > index bb80ca205d26..525210c2c06c 100644
> > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> > @@ -101,6 +101,11 @@ properties:
> > minItems: 1
> > maxItems: 2
> >
> > + snps,per-channel-interrupt:
> > + $ref: /schemas/types.yaml#/definitions/flag
> > + description:
> > + Indicates that Rx and Tx complete will generate a unique interrupt for each channel
>
> Can't you determine this based on the number of interrupts or interrupt
> names?

Good idea! this flag can be dynamically detected based on the interrupt names.
The driver code will be patched a bit ugly, I will try and send out for review.

>
> > +
> > interrupts:
> > minItems: 1
> > items:
> > @@ -109,6 +114,8 @@ properties:
> > - description: The interrupt that occurs when Rx exits the LPI state
> > - description: The interrupt that occurs when Safety Feature Correctible Errors happen
> > - description: The interrupt that occurs when Safety Feature Uncorrectible Errors happen
> > + - description: All of the rx per-channel interrupts
> > + - description: All of the tx per-channel interrupts
>
> You added 2 interrupts here and...

I'm not sure how to write the description here, could it be one line
"- description: All of the tx/rx per-channel interrupts"?

>
> >
> > interrupt-names:
> > minItems: 1
> > @@ -118,6 +125,22 @@ properties:
> > - const: eth_lpi
> > - const: sfty_ce_irq
> > - const: sfty_ue_irq
> > + - const: rx0
> > + - const: rx1
> > + - const: rx2
> > + - const: rx3
> > + - const: rx4
> > + - const: rx5
> > + - const: rx6
> > + - const: rx7
> > + - const: tx0
> > + - const: tx1
> > + - const: tx2
> > + - const: tx3
> > + - const: tx4
> > + - const: tx5
> > + - const: tx6
> > + - const: tx7
>
> And 16 here?
>

oops, indeed HW supports up to 16 channels for tx and rx, thus
up to 16 interrupts.

> >
> > clocks:
> > minItems: 1
> > --
> > 2.40.1
> >