Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp96512rdb; Mon, 4 Dec 2023 22:36:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IHM386ORcWkD7Jf/UyKYZhRfMU+DaIwmtohvue87b2G9n9YPqWfjdpiDE1DYf13DWXKqn29 X-Received: by 2002:a17:902:ba93:b0:1d0:6ffe:9f0 with SMTP id k19-20020a170902ba9300b001d06ffe09f0mr5178099pls.78.1701758200263; Mon, 04 Dec 2023 22:36:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701758200; cv=none; d=google.com; s=arc-20160816; b=c1uJ3gsGcgg0pvuU3SKfgf5Lue67DR4ParY7YY4S8Ri3oWFLWgODZZupT9PV7cX7A2 npkSei4SNz96FS/23Qo5xW4PJ0Y4xMFNFVk90oR0P93TSvcs3zxOmphjfkAw7tly95wq p8YGeBdYfTgbCEXLJsiAlfJiS7Bo63V//Ydn+Xh3gNCoFmo6zFnOmnEbFPUSAaaHJfcm sIU6mEl7fOnn5tc5xZ09jwLKt7eCy8OPx9okHq+kQTdpjH7D/Gk9DWmz7kVcQB3YZQcb dXwIFyvNYgs/K1EmwjWBRT1CVgXzpyOtE/3r6jfMINesfppSwvsr0YcStTBSUX1vWyWl 5Peg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=i89LeceS3g5TZ6FuSvzxMBfGRf0oZC628VmgQdMpoiM=; fh=kD5LEeqwUt+UDiGLk+D6W/a+MNHHlrXL6Lz1VPYzD2o=; b=hW1JKGKsoV3stE0Ct1VJsj+7aNmkG9O+mO7yqXcTmei0JlUXu8tJAMnAch1sUYw4cu j/Ge4DCHi8t1qyF8cEpL23nKt7+fCMP/W4LbShcYw6kyznFH0vOG3RN14oFe1YO2F0Vd xDg7vAKippIGKJ+L31ONVC9Cs2ZDyCpDkNVOhSTeBQFMF1Gc/CBRhjGMFDNfZxnuwgNX pgVztW8bTOxfxdDOScg8lgamHvq4xFHffO9w91oNkOOGMxCqfTj+hjZeRKrktMafDN/U J4L76d3+7stI8SyMvfEpncpzwN/8tdHcPnEQ+6TIP2ULtLbBlMlBz0HRpK4VlqX4qIwT KUeA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id y4-20020a17090322c400b001cff290413bsi9365324plg.390.2023.12.04.22.36.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 22:36:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id ABA5E80A222C; Mon, 4 Dec 2023 22:36:31 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344390AbjLEGgP (ORCPT + 99 others); Tue, 5 Dec 2023 01:36:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344382AbjLEGgN (ORCPT ); Tue, 5 Dec 2023 01:36:13 -0500 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F1F1116 for ; Mon, 4 Dec 2023 22:36:19 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rAP2N-00005G-So; Tue, 05 Dec 2023 07:36:07 +0100 Received: from [2a0a:edc0:2:b01:1d::c0] (helo=ptx.whiteo.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rAP2M-00DgTT-CP; Tue, 05 Dec 2023 07:36:06 +0100 Received: from ore by ptx.whiteo.stw.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1rAP2M-005LCY-94; Tue, 05 Dec 2023 07:36:06 +0100 Date: Tue, 5 Dec 2023 07:36:06 +0100 From: Oleksij Rempel To: Kory Maincent Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan Corbet , Luis Chamberlain , Russ Weight , Greg Kroah-Hartman , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thomas Petazzoni , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, devicetree@vger.kernel.org, Dent Project , Liam Girdwood , Mark Brown Subject: Re: [PATCH net-next v2 7/8] dt-bindings: net: pse-pd: Add bindings for PD692x0 PSE controller Message-ID: <20231205063606.GI981228@pengutronix.de> References: <20231201-feature_poe-v2-0-56d8cac607fa@bootlin.com> <20231201-feature_poe-v2-7-56d8cac607fa@bootlin.com> <20231204230845.GH981228@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20231204230845.GH981228@pengutronix.de> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 04 Dec 2023 22:36:32 -0800 (PST) CC regulator devs here. PSE is a regulator for network devices :) On Tue, Dec 05, 2023 at 12:08:45AM +0100, Oleksij Rempel wrote: > On Fri, Dec 01, 2023 at 06:10:29PM +0100, Kory Maincent wrote: > > Add the PD692x0 I2C Power Sourcing Equipment controller device tree > > bindings documentation. > > > > Sponsored-by: Dent Project > > Signed-off-by: Kory Maincent > > --- > > > > Changes in v2: > > - Enhance ports-matrix description. > > - Replace additionalProperties by unevaluatedProperties. > > - Drop i2c suffix. > > --- > > .../bindings/net/pse-pd/microchip,pd692x0.yaml | 77 ++++++++++++++++++++++ > > MAINTAINERS | 6 ++ > > 2 files changed, 83 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/net/pse-pd/microchip,pd692x0.yaml b/Documentation/devicetree/bindings/net/pse-pd/microchip,pd692x0.yaml > > new file mode 100644 > > index 000000000000..3ce81cf99215 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/pse-pd/microchip,pd692x0.yaml > > @@ -0,0 +1,77 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/pse-pd/microchip,pd692x0.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Microchip PD692x0 Power Sourcing Equipment controller > > + > > +maintainers: > > + - Kory Maincent > > + > > +allOf: > > + - $ref: pse-controller.yaml# > > + > > +properties: > > + compatible: > > + enum: > > + - microchip,pd69200 > > + - microchip,pd69210 > > + - microchip,pd69220 > > + > > + reg: > > + maxItems: 1 > > + > > + '#pse-cells': > > + const: 1 > > + > > + ports-matrix: > > + description: each set of 48 logical ports can be assigned to one or two > > + physical ports. Each physical port is wired to a PD69204/8 PoE > > + manager. Using two different PoE managers for one RJ45 port > > + (logical port) is interesting for temperature dissipation. > > + This parameter describes the configuration of the port conversion > > + matrix that establishes the relationship between the 48 logical ports > > + and the available 96 physical ports. Unspecified logical ports will > > + be deactivated. > > + $ref: /schemas/types.yaml#/definitions/uint32-matrix > > + minItems: 1 > > + maxItems: 48 > > + items: > > + items: > > + - description: Logical port number > > + minimum: 0 > > + maximum: 47 > > + - description: Physical port number A (0xff for undefined) > > + oneOf: > > + - minimum: 0 > > + maximum: 95 > > + - const: 0xff > > + - description: Physical port number B (0xff for undefined) > > + oneOf: > > + - minimum: 0 > > + maximum: 95 > > + - const: 0xff > > + > > +unevaluatedProperties: false > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + ethernet-pse@3c { > > + compatible = "microchip,pd69200"; > > + reg = <0x3c>; > > + #pse-cells = <1>; > > + ports-matrix = <0 2 5 > > + 1 3 6 > > + 2 0 0xff > > + 3 1 0xff>; > > Hm... this will probably not scale. PSE is kind of PMIC for ethernet. I > has bunch of regulators which can be grouped to one more powerful > regulator. Since it is regulators, we will wont to represent them in a > system as regulators too. We will probably have physical, board > specific limitation, so we will need to describe regulator limits for > each separate channel. After diving a bit deeper to the chip manual and communication protocol manual I would recommend to recreate system topology as good as possible in the devicetree. The reason is that we actually able to communicate with with "manager" behind the "controller" and the "port-matrix" is all about the "managers" and physical ports layout. Typical system architecture looks like this: SoC --- i2c/uart --> controller -- spi --> manager0 -- phys_port0 --> log_port0 (PoE4) | \- phys_port1 -/ | \- phys_port2 --> log_port1 (PoE2) | \- phys_port3 --> log_port2 (PoE2) \- manager1 -- phys_port0 .. .... Please include some ASCII topology to the documentation :) I would expect a devicetree like this: ethernet-pse@3c { // controller compatible should be precise compatible = "microchip,pd69210"; reg = <0x3c>; #pse-cells = <1>; managers { manager@0 { // manager compatible should be included, since we are // able to campare it with communication results compatible = "microchip,pd69208t4" // addressing corresponding to the chip select addressing reg = <0>; physical-ports { phys0: port@0 { // each of physical ports is actually a regulator reg = <0>; }; phys1: port@1 { reg = <1>; }; phys2: port@2 { reg = <2>; }; ... } // port matrix can be calculated by using this information logical-ports { log_port0: port@0 { // PoE4 port physical-ports = <&phys0, &phys1>; }; log_port1: port@1 { // PoE2 port physical-ports = <&phys2>; }; }; .... ethernet-phy@1 { reg = <1>; pses = <&log_port0>; } ethernet-phy@2 { reg = <2>; pses = <&log_port1>; } -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |