All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Russ Weight <russ.weight@linux.dev>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Oleksij Rempel <o.rempel@pengutronix.de>,
	Mark Brown <broonie@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, devicetree@vger.kernel.org,
	Dent Project <dentproject@linuxfoundation.org>
Subject: Re: [PATCH net-next v3 10/17] dt-bindings: net: pse-pd: Add another way of describing several PSE PIs
Date: Fri, 9 Feb 2024 14:43:49 +0000	[thread overview]
Message-ID: <20240209144349.GA3678044-robh@kernel.org> (raw)
In-Reply-To: <20240208-feature_poe-v3-10-531d2674469e@bootlin.com>

On Thu, Feb 08, 2024 at 02:08:47PM +0100, Kory Maincent wrote:
> Before hand we set "#pse-cell" to 1 to define a PSE controller with

#pse-cells

> several PIs (Power Interface). The drawback of this was that we could not
> have any information on the PI except its number.

Then increase it to what you need. The whole point of #foo-cells is that 
it is variable depending on what the provider needs. 

> 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.

Please explain the problem you are trying to solve, not your solution. I 
don't understand what the problem is to provide any useful suggestions 
on the design.

> 
> Sponsored-by: Dent Project <dentproject@linuxfoundation.org>

Is this a recognized tag? First I've seen it.

> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
> 
> 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@pengutronix.de>
> +  - Kory Maincent <kory.maincent@bootlin.com>
>  
>  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:

$defs is for when you need multiple copies of the same thing. I don't 
see that here.

> +  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]+$":

Unit-addresses are hex.

> +        $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

As you are defining the addressing here, you need to define what the 
"addresses" are.

> +
> +      "#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"

This leaves the 2nd entry undefined. You need the dictionary form of 
'items' rather than a list. IOW, Drop the '-' under items.

> +
> +      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
> 

  parent reply	other threads:[~2024-02-09 14:43 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-08 13:08 [PATCH net-next v3 00/17] net: Add support for Power over Ethernet (PoE) Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 01/17] MAINTAINERS: net: Add Oleksij to pse-pd maintainers Kory Maincent
2024-02-14 17:13   ` Andrew Lunn
2024-02-15  8:19     ` Oleksij Rempel
2024-02-08 13:08 ` [PATCH net-next v3 02/17] of: property: Add fw_devlink support for pse parent Kory Maincent
2024-02-14 17:17   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 03/17] net: pse-pd: Rectify and adapt the naming of admin_cotrol member of struct pse_control_config Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 04/17] ethtool: Expand Ethernet Power Equipment with c33 (PoE) alongside PoDL Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 05/17] net: pse-pd: Introduce PSE types enumeration Kory Maincent
2024-02-14 17:18   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 06/17] net: ethtool: pse-pd: Expand pse commands with the PSE PoE interface Kory Maincent
2024-02-14 17:21   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 07/17] netlink: specs: Modify pse attribute prefix Kory Maincent
2024-02-14 17:22   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 08/17] netlink: specs: Expand the pse netlink command with PoE interface Kory Maincent
2024-02-14 17:22   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 09/17] MAINTAINERS: Add myself to pse networking maintainer Kory Maincent
2024-02-14 17:23   ` Andrew Lunn
2024-02-08 13:08 ` [PATCH net-next v3 10/17] dt-bindings: net: pse-pd: Add another way of describing several PSE PIs Kory Maincent
2024-02-08 15:51   ` Rob Herring
2024-02-09 14:43   ` Rob Herring [this message]
2024-02-14 13:13     ` Köry Maincent
2024-02-14 15:41       ` Köry Maincent
2024-02-15 13:51         ` Rob Herring
2024-02-15 14:01           ` Andrew Lunn
2024-02-15 14:33             ` Köry Maincent
2024-02-08 13:08 ` [PATCH net-next v3 11/17] net: pse-pd: Add support for " Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 12/17] net: pse-pd: Add support for setup_pi_matrix callback Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 13/17] net: pse-pd: Use regulator framework within PSE framework Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 14/17] dt-bindings: net: pse-pd: Add bindings for PD692x0 PSE controller Kory Maincent
2024-02-09 14:57   ` Rob Herring
2024-02-11  9:32     ` Oleksij Rempel
2024-02-14 17:41       ` Andrew Lunn
2024-02-15  8:17         ` Oleksij Rempel
2024-02-15 10:41           ` Köry Maincent
2024-02-15 12:04             ` Oleksij Rempel
2024-02-15 17:51           ` Andrew Lunn
2024-02-16  7:47             ` Oleksij Rempel
2024-02-17  6:46               ` Oleksij Rempel
2024-02-19 14:31               ` Köry Maincent
2024-02-19 16:07                 ` Oleksij Rempel
2024-02-08 13:08 ` [PATCH net-next v3 15/17] net: pse-pd: Add PD692x0 PSE controller driver Kory Maincent
2024-02-08 13:08 ` [PATCH net-next v3 16/17] dt-bindings: net: pse-pd: Add bindings for TPS23881 PSE controller Kory Maincent
2024-02-08 15:51   ` Rob Herring
2024-02-09 11:26   ` Köry Maincent
2024-02-08 13:08 ` [PATCH net-next v3 17/17] net: pse-pd: Add TI TPS23881 PSE controller driver Kory Maincent

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240209144349.GA3678044-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=dentproject@linuxfoundation.org \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hkallweit1@gmail.com \
    --cc=kory.maincent@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mcgrof@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=rafael@kernel.org \
    --cc=russ.weight@linux.dev \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.