Re: [PATCH net-next v6 11/17] dt-bindings: net: pse-pd: Add another way of describing several PSE PIs

From: Kory Maincent
Date: Wed Apr 03 2024 - 05:16:15 EST


On Tue, 2 Apr 2024 08:26:37 -0500
Rob Herring <robh@xxxxxxxxxx> wrote:

> > + pairset-names:
> > + $ref: /schemas/types.yaml#/definitions/string-array
> > + description:
> > + Names of the pairsets as per IEEE 802.3-2022, Section
> > 145.2.4.
> > + Valid values are "alternative-a" and "alternative-b". Each
> > name
>
> Don't state constraints in prose which are defined as schema
> constraints.

Ok, I will remove the line.

> > + pairsets:
> > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > + description:
> > + List of phandles, each pointing to the power supply for the
> > + corresponding pairset named in 'pairset-names'. This property
> > + aligns with IEEE 802.3-2022, Section 33.2.3 and 145.2.4.
> > + PSE Pinout Alternatives (as per IEEE 802.3-2022 Table
> > 145\u20133)
> > +
> > |-----------|---------------|---------------|---------------|---------------|
> > + | Conductor | Alternative A | Alternative A | Alternative B
> > | Alternative B |
> > + | | (MDI-X) | (MDI) | (X)
> > | (S) |
> > +
> > |-----------|---------------|---------------|---------------|---------------|
> > + | 1 | Negative VPSE | Positive VPSE | \u2014
> > | \u2014 |
> > + | 2 | Negative VPSE | Positive VPSE | \u2014
> > | \u2014 |
> > + | 3 | Positive VPSE | Negative VPSE | \u2014
> > | \u2014 |
> > + | 4 | \u2014 | \u2014 |
> > Negative VPSE | Positive VPSE |
> > + | 5 | \u2014 | \u2014 |
> > Negative VPSE | Positive VPSE |
> > + | 6 | Positive VPSE | Negative VPSE | \u2014
> > | \u2014 |
> > + | 7 | \u2014 | \u2014 |
> > Positive VPSE | Negative VPSE |
> > + | 8 | \u2014 | \u2014 |
> > Positive VPSE | Negative VPSE |
> > + minItems: 1
> > + maxItems: 2
>
> "pairsets" does not follow the normal design pattern of foos, foo-names,
> and #foo-cells. You could add #foo-cells I suppose, but what would cells
> convey? I don't think it's a good fit for what you need.
>
> The other oddity is the number of entries and the names are fixed. That
> is usually defined per consumer.

Theoretically if the RJ45 port binding was supported it would make more sense,
but in reality it's not feasible as the PSE controller need this information
in its init process.
The PSE controller reset all its port to apply a configuration so we can't do
it when the consumer (RJ45) probe. It would reset the other ports if one
consumer is probed later in the process.

> As each entry is just a power rail, why can't the regulator binding be
> used here?

Olekisj already answered about it.
PSE PI is like a regulator but with few different features and more information
like the pinout and the polarity, so we could not really fully rely on the
regulator binding style.

> > +
> > + polarity-supported:
> > + $ref: /schemas/types.yaml#/definitions/string-array
> > + description:
> > + Polarity configuration supported by the PSE PI pairsets.
> > + minItems: 1
> > + maxItems: 4
> > + items:
> > + enum:
> > + - MDI-X
> > + - MDI
> > + - X
> > + - S
> > +
> > + vpwr-supply:
> > + description: Regulator power supply for the PSE PI.
>
> I don't see this being used anywhere.

Right, I forgot to add it to the PD692x0 and TPS23881 binding example!

Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com