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

From: Kory Maincent
Date: Thu Feb 08 2024 - 08:14:03 EST


Before hand we set "#pse-cell" to 1 to define a PSE controller with
several PIs (Power Interface). The drawback of this was that we could not
have any information on the PI except its number.
Add support for pse_pis and pse_pi node to be able to have more information
on the PI like the number of pairset used and the pairset pinout.

Sponsored-by: Dent Project <dentproject@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Kory Maincent <kory.maincent@xxxxxxxxxxx>
---

Changes in v3:
- New patch
---
.../bindings/net/pse-pd/pse-controller.yaml | 101 ++++++++++++++++++++-
1 file changed, 98 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
index 2d382faca0e6..dd5fb53e527a 100644
--- a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
+++ b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
@@ -13,6 +13,7 @@ description: Binding for the Power Sourcing Equipment (PSE) as defined in the

maintainers:
- Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
+ - Kory Maincent <kory.maincent@xxxxxxxxxxx>

properties:
$nodename:
@@ -22,11 +23,105 @@ properties:
description:
Used to uniquely identify a PSE instance within an IC. Will be
0 on PSE nodes with only a single output and at least 1 on nodes
- controlling several outputs.
+ controlling several outputs which are not described in the pse_pis
+ subnode. This property is deprecated, please use pse_pis instead.
enum: [0, 1]

-required:
- - "#pse-cells"
+ pse_pis:
+ $ref: "#/$defs/pse_pis"
+
+$defs:
+ pse_pis:
+ type: object
+ description:
+ Kind of a matrix to identify the concordance between a PSE Power
+ Interface and one or two (PoE4) physical ports.
+
+ properties:
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ patternProperties:
+ "^pse_pi@[0-9]+$":
+ $ref: "#/$defs/pse_pi"
+
+ required:
+ - "#address-cells"
+ - "#size-cells"
+
+ pse_pi:
+ description:
+ PSE PI device for power delivery via pairsets, compliant with IEEE
+ 802.3-2022, Section 145.2.4. Each pairset comprises a positive and a
+ negative VPSE pair, adhering to the pinout configurations detailed in
+ the standard.
+ type: object
+ properties:
+ reg:
+ maxItems: 1
+
+ "#pse-cells":
+ const: 0
+
+ pairset-names:
+ 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 should
+ correspond to a phandle in the 'pairset' property pointing to the
+ power supply for that pairset.
+ $ref: /schemas/types.yaml#/definitions/string-array
+ minItems: 1
+ maxItems: 2
+ items:
+ - enum:
+ - "alternative-a"
+ - "alternative-b"
+
+ pairsets:
+ 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–3)
+ | Conductor | Alternative A (MDI-X) | Alternative A (MDI) | Alternative B(X) | Alternative B(S) |
+ |-----------|-----------------------|---------------------|------------------|------------------|
+ | 1 | Negative VPSE | Positive VPSE | — | — |
+ | 2 | Negative VPSE | Positive VPSE | — | — |
+ | 3 | Positive VPSE | Negative VPSE | — | — |
+ | 4 | — | — | Negative VPSE | Positive VPSE |
+ | 5 | — | — | Negative VPSE | Positive VPSE |
+ | 6 | Positive VPSE | Negative VPSE | — | — |
+ | 7 | — | — | Positive VPSE | Negative VPSE |
+ | 8 | — | — | Positive VPSE | Negative VPSE |
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ minItems: 1
+ maxItems: 2
+
+ required:
+ - reg
+ - "#pse-cells"
+ - pairset-names
+ - pairsets
+
+allOf:
+ - if:
+ required:
+ - "#pse-cells"
+ then:
+ not:
+ required:
+ - pse-pis
+
+ - if:
+ required:
+ - pse-pis
+ then:
+ not:
+ required:
+ - "#pse-cells"

additionalProperties: true


--
2.25.1