All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kyle Swenson <kyle.swenson@est.tech>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: "o.rempel@pengutronix.de" <o.rempel@pengutronix.de>,
	"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"edumazet@google.com" <edumazet@google.com>,
	"kuba@kernel.org" <kuba@kernel.org>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Roland Kovács" <roland.kovacs@est.tech>,
	"David Nyström" <david.nystrom@est.tech>
Subject: Re: [RFC PATCH net-next v2 1/2] dt-bindings: net: pse-pd: Add bindings for LTC4266 PSE Controller
Date: Mon, 24 Aug 2026 15:28:08 +0000	[thread overview]
Message-ID: <aoxi_jERN69gqnx1@p620> (raw)
In-Reply-To: <4b16ca01-a09c-49bd-8c3e-ffa9921a0823@bootlin.com>

Hello Kory,

On Mon, Aug 24, 2026 at 12:46:35PM +0200, Kory Maincent wrote:
> Hello Kyle,
> 
> Glad to see the v2 landing in the mailing list.
Sure has taken a while, but finally here....

> 
> On 8/20/26 16:25, Kyle Swenson wrote:
> > Add the LTC4266 Power Sourcing Equipment controller device tree bindings
> > documentation.
> > 
> > Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
> > ---
> >   .../bindings/net/pse-pd/lltc,ltc4266.yaml     | 180 ++++++++++++++++++
> >   1 file changed, 180 insertions(+)
> >   create mode 100644 Documentation/devicetree/bindings/net/pse-pd/lltc,ltc4266.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/net/pse-pd/lltc,ltc4266.yaml b/Documentation/devicetree/bindings/net/pse-pd/lltc,ltc4266.yaml
> > new file mode 100644
> > index 000000000000..b3da8fea0b07
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/pse-pd/lltc,ltc4266.yaml
> > @@ -0,0 +1,180 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/pse-pd/lltc,ltc4266.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Linear Technology LTC4266 Power Sourcing Equipment controller
> > +
> > +maintainers:
> > +  - Kyle Swenson <kyle.swenson@est.tech>
> > +
> > +allOf:
> > +  - $ref: pse-controller.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - lltc,ltc4266
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  reset-gpios:
> > +    maxItems: 1
> 
> The reset-gpios is currently not implemented in your driver. Maybe add it in
> the binding when it will be the case.

I was trying to follow the "bindings document hardware" model but I've
no problem dropping it in future versions.  I would have added the
reset-gpios support in the driver, but the hardware I've got with the
LTC4266 has the LTC4266 reset connected to the board level reset and so
I can't test this functionality if I were to add it.

> 
> > +  channels:
> > +    type: object
> > +    additionalProperties: false
> > +    description:
> > +      Defines the 4 physical delivery channels on the controller that can be
> > +      referenced by PSE PIs through their "pairsets" property. The actual port
> > +      matrix mapping is created when PSE PIs reference these channels in their
> > +      pairsets.
> > +
> > +    properties:
> > +      '#address-cells':
> > +        const: 1
> > +
> > +      '#size-cells':
> > +        const: 0
> > +
> > +    patternProperties:
> > +      '^channel@[0-3]$':
> > +        type: object
> > +        additionalProperties: false
> > +
> > +        properties:
> > +          reg:
> > +            maxItems: 1
> > +
> > +          sense-resistor-micro-ohms:
> > +            description: Sense resistor connected to the channel's MOSFET, used
> > +              for current measurement for overcurrent detection.
> > +            enum: [250000, 500000]
> > +
> > +        required:
> > +          - reg
> > +          - sense-resistor-micro-ohms
> 
> I am bit skeptical about having sense-resistor-micro-ohms as a mandatory
> parameter. As you have described it's only for current measurement so it's
> not a requirement for PSE functioning. Maybe set it as a default value if
> not specified.
Well, on the LTC4266, the chipset depends on this current measurement to
enforce per-class current limits, which is required for power budgeting.
Maybe it'd be good for me to expclitly state that instead.

> 
> Else LGTM.
Ack.
> 
> > +    required:
> > +      - '#address-cells'
> > +      - '#size-cells'
> > +
> > +  pse-pis:
> > +    type: object
> > +    additionalProperties: false
> > +
> > +    properties:
> > +      '#address-cells':
> > +        const: 1
> > +
> > +      '#size-cells':
> > +        const: 0
> > +
> > +    patternProperties:
> > +      '^pse-pi@[0-3]$':
> > +        type: object
> > +        properties:
> > +          pairsets:
> > +            description: The LTC4266 delivers power to a PI over a single
> > +              pairset, driven by one of the controller's four channels. There
> > +              is no 4-pair mode spreading a PI over two channels, so exactly
> > +              one channel phandle is expected.
> > +            maxItems: 1
> > +          pairset-names:
> > +            maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +  - channels
> > +  - pse-pis
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    i2c {
> > +      #address-cells = <1>;
> > +      #size-cells = <0>;
> > +
> > +      ethernet-pse@2f {
> > +        compatible = "lltc,ltc4266";
> > +        reg = <0x2f>;
> > +        interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
> > +        interrupt-parent = <&gpio>;
> > +
> > +        channels {
> > +          #address-cells = <1>;
> > +          #size-cells = <0>;
> > +
> > +          phys0: channel@0 {
> > +            reg = <0>;
> > +            sense-resistor-micro-ohms = <500000>;
> > +          };
> > +
> > +          phys1: channel@1 {
> > +            reg = <1>;
> > +            sense-resistor-micro-ohms = <500000>;
> > +          };
> > +
> > +          phys2: channel@2 {
> > +            reg = <2>;
> > +            sense-resistor-micro-ohms = <500000>;
> > +          };
> > +
> > +          phys3: channel@3 {
> > +            reg = <3>;
> > +            sense-resistor-micro-ohms = <500000>;
> > +          };
> > +        };
> > +
> > +        pse-pis {
> > +          #address-cells = <1>;
> > +          #size-cells = <0>;
> > +
> > +          pse_pi0: pse-pi@0 {
> > +            reg = <0>;
> > +            #pse-cells = <0>;
> > +            pairset-names = "alternative-a";
> > +            pairsets = <&phys0>;
> > +            polarity-supported = "MDI";
> > +            vpwr-supply = <&vreg_pse>;
> > +          };
> > +
> > +          pse_pi1: pse-pi@1 {
> > +            reg = <1>;
> > +            #pse-cells = <0>;
> > +            pairset-names = "alternative-a";
> > +            pairsets = <&phys1>;
> > +            polarity-supported = "MDI";
> > +            vpwr-supply = <&vreg_pse>;
> > +          };
> > +
> > +          pse_pi2: pse-pi@2 {
> > +            reg = <2>;
> > +            #pse-cells = <0>;
> > +            pairset-names = "alternative-a";
> > +            pairsets = <&phys2>;
> > +            polarity-supported = "MDI";
> > +            vpwr-supply = <&vreg_pse>;
> > +          };
> > +
> > +          pse_pi3: pse-pi@3 {
> > +            reg = <3>;
> > +            #pse-cells = <0>;
> > +            pairset-names = "alternative-a";
> > +            pairsets = <&phys3>;
> > +            polarity-supported = "MDI";
> > +            vpwr-supply = <&vreg_pse>;
> > +          };
> > +        };
> > +      };
> > +    };
> 
> -- 
> Köry Maincent, Bootlin
> Embedded Linux and kernel engineering
> https://bootlin.com
> 
Thanks for the review!

Thanks,
Kyle

  reply	other threads:[~2026-08-24 15:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-20 14:25 [RFC PATCH net-next v2 0/2] net: pse-pd: Add LTC4266 PSE controller driver Kyle Swenson
2026-08-20 14:25 ` [RFC PATCH net-next v2 1/2] dt-bindings: net: pse-pd: Add bindings for LTC4266 PSE Controller Kyle Swenson
2026-08-21 14:25   ` sashiko-bot
2026-08-24 10:46   ` Kory Maincent
2026-08-24 15:28     ` Kyle Swenson [this message]
2026-08-20 14:25 ` [RFC PATCH net-next v2 2/2] net: pse-pd: Add LTC4266 PSE controller driver Kyle Swenson
2026-08-21 14:25   ` sashiko-bot
2026-08-24 12:43 ` [RFC PATCH net-next v2 0/2] " 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=aoxi_jERN69gqnx1@p620 \
    --to=kyle.swenson@est.tech \
    --cc=andrew+netdev@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=david.nystrom@est.tech \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=kory.maincent@bootlin.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=roland.kovacs@est.tech \
    /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.