Received: by 2002:a05:7412:b130:b0:e2:908c:2ebd with SMTP id az48csp2470288rdb; Mon, 20 Nov 2023 11:39:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IFLNYeMpWMNyWtDam2vRIILVX4rjd3JiJwo3C+12bGfzEhLCG1CyKczuq4CC6J4APrzBatx X-Received: by 2002:a17:903:24f:b0:1cc:31c4:377b with SMTP id j15-20020a170903024f00b001cc31c4377bmr7307132plh.63.1700509145936; Mon, 20 Nov 2023 11:39:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700509145; cv=none; d=google.com; s=arc-20160816; b=cB+GlNloW6E3nN5PGhwxLfbhUPHp1cHsFBzPmJE93b7CddSvati5mjDFTm0dv7OsMq 2QeAJW4ZKmihjun1ZM/qOy2SwPkJB+eec4jF8aF1YEsuTHg0Infpqx5IgzqMIzhtGFWS wZPckYy6wz3fqfYsUz1PhaexhgJV69SLQ+MCiHkh4MU9fIpXoMfcnBJywN0MvzViO8yz YAB3v4ffnWHPOLpPZwUNRgtQqxNrifcImk2lBTg/zgk9Np+10IqBq6ssQTlcuEgVY/ia P1DrPVPjELGhybDDV+svHKH+2V0TyxN88EQTSoWtblmxCDEHRqOkJCbYGm/OR7GAwaaB jPLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:subject:cc:to:from:date:message-id:dkim-signature; bh=s6qbWAmzKi2p0EuDS/NMn95lRrUARZbsnu45noLp+Qc=; fh=ReJaOx9MAsF+iERQkBLxXeJg4Z/a1ND8NuTcyIWlW5o=; b=Y/XrK6yVpHBu/mYdo0CL17pcGGOEX0e7wn3jPQ3Bx6AovAGqckYxBSD5pBcoDiAiB4 u3FoETljPa5P2YRwsfmaFW7Y5kz06ysIKLMFYGCu6TeVkZtdb/sLQIf+YN/nc9J6LLYJ n5ctLD2LsjMS4ahEBxIzRYHHJgUro++oGqUForIyz6EKHD/7yozprjpt9eZ4gGi48k/4 x5r8mn/iqlW8EecdsWPemsSgE1H4rmeTKNLhk7/JZUSY1u2Aubhje2yHMuwNNPaSUTrw yyQxhZ4e/bMmMLRIUtsOAfveU0to7NVUKvYaMGTIMnYiHnaV0eG8aqN/kjtMCORYbJdx 55jQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="erUhBv/A"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id i17-20020a170902c95100b001cf5d449540si29905pla.60.2023.11.20.11.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Nov 2023 11:39:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="erUhBv/A"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 581B980657E0; Mon, 20 Nov 2023 11:37:19 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229632AbjKTThR (ORCPT + 99 others); Mon, 20 Nov 2023 14:37:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229504AbjKTThQ (ORCPT ); Mon, 20 Nov 2023 14:37:16 -0500 Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 402FBA0; Mon, 20 Nov 2023 11:37:12 -0800 (PST) Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-32fadd4ad09so3585982f8f.1; Mon, 20 Nov 2023 11:37:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700509030; x=1701113830; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:subject:cc :to:from:date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=s6qbWAmzKi2p0EuDS/NMn95lRrUARZbsnu45noLp+Qc=; b=erUhBv/AMdX29t5+Mv85E0bZHg4WrQ/Cwv3r7mMxi/OuTQzzFU7NemX77PzVHeoPhA GS9Wu+3xRO9gMkaGt2HCspKBVyD38ni6nNebJn+3o6iLFqaK2C1TUXXRx2KcmGc0e+Z1 Ee2nLyrwSi/WfkQQDTSVdezUiArHILXvise6vkpfTx4AR5GzkEmsR3/5YTFXsqOp8xem 2L2+ugUrK1wYYyrwdLFht8SMa3oeFNM/KFo1I/FPjFze1CzS9BPYdvDopTRoBmYx+qBe SbbieaH6mqyyppc7CZq/Ki3K4t+4kjIDDhOVyeK5yghUrJ4lzW+xOcKgL0sJEiGFZhf8 0Glg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700509030; x=1701113830; h=in-reply-to:content-disposition:mime-version:references:subject:cc :to:from:date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=s6qbWAmzKi2p0EuDS/NMn95lRrUARZbsnu45noLp+Qc=; b=NZiq5IRbD9Wi84geFgzKxKqB3SUSAEJnUbph3TBqeCnIZo4IbSHBVV/vLrYZkY/LJW FD5uv7P8KsMOgXfzOn8uLiHkFABIb1i6LukHXF/ta/6hkVvizw4NYtbBwE1M6YqUt6QA uKC3b6c1I69vATu2Uh+Cyxl30q0V8fhYZTU8YFppl2v9F0bGr1a5yP0FtzhA+4bvmpGR u5ZZBUK5s/1jDUyZhN8haq63q/QYU3eAUOrFvxaHaRswIUMiaDPGuv0fos7bxLN3/o+W zw/qdfRz/zpMMr7tqr78DHgYPnT/QPhCmuqxrBeBNm1JU51ShMmiRnZGwtxDFsCyPp7Q ZS2g== X-Gm-Message-State: AOJu0Yz3Rhpbta+142YkIf7MjtVM61k4+Js+DgKKp2NFBVqNY1IaX4X6 xwfRkwUyXlsIxYaRnpb+ZJA= X-Received: by 2002:adf:e503:0:b0:331:6a43:5abe with SMTP id j3-20020adfe503000000b003316a435abemr5132310wrm.62.1700509030283; Mon, 20 Nov 2023 11:37:10 -0800 (PST) Received: from Ansuel-xps. (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.gmail.com with ESMTPSA id e8-20020adfe7c8000000b00332cc24a59bsm997960wrn.109.2023.11.20.11.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Nov 2023 11:37:09 -0800 (PST) Message-ID: <655bb565.df0a0220.1848b.5d49@mx.google.com> X-Google-Original-Message-ID: Date: Mon, 20 Nov 2023 17:39:20 +0100 From: Christian Marangi To: Rob Herring Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Krzysztof Kozlowski , Conor Dooley , Andy Gross , Bjorn Andersson , Konrad Dybcio , Andrew Lunn , Heiner Kallweit , Russell King , Florian Fainelli , Broadcom internal kernel review list , Daniel Golle , Qingfang Deng , SkyLake Huang , Matthias Brugger , AngeloGioacchino Del Regno , David Epping , Vladimir Oltean , "Russell King (Oracle)" , Harini Katakam , Simon Horman , Robert Marko , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [net-next RFC PATCH 03/14] dt-bindings: net: document ethernet PHY package nodes References: <20231120135041.15259-1-ansuelsmth@gmail.com> <20231120135041.15259-4-ansuelsmth@gmail.com> <20231120174133.GB2378814-robh@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231120174133.GB2378814-robh@kernel.org> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net 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 (snail.vger.email [0.0.0.0]); Mon, 20 Nov 2023 11:37:19 -0800 (PST) On Mon, Nov 20, 2023 at 10:41:33AM -0700, Rob Herring wrote: > On Mon, Nov 20, 2023 at 02:50:30PM +0100, Christian Marangi wrote: > > Document ethernet PHY package nodes used to describe PHY shipped in > > bundle of 4-5 PHY. These particular PHY require specific PHY in the > > package for global onfiguration of the PHY package. > > > > Example are PHY package that have some regs only in one PHY of the > > package and will affect every other PHY in the package, for example > > related to PHY interface mode calibration or global PHY mode selection. > > > > The PHY package node should use the global-phys property and the > > global-phy-names to define PHY in the package required by the PHY driver > > for global configuration. > > > > It's also possible to specify the property phy-mode to specify that the > > PHY package sets a global PHY interface mode and every PHY of the > > package requires to have the same PHY interface mode. > > > > Signed-off-by: Christian Marangi > > --- > > .../bindings/net/ethernet-phy-package.yaml | 86 +++++++++++++++++++ > > 1 file changed, 86 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-package.yaml > > > > diff --git a/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml b/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml > > new file mode 100644 > > index 000000000000..2aa109e155d9 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml > > @@ -0,0 +1,86 @@ > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/ethernet-phy-package.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Ethernet PHY Package Common Properties > > + > > +maintainers: > > + - Christian Marangi > Missing a '>' > > > + > > +properties: > > + $nodename: > > + pattern: "^ethernet-phy-package(-[0-9]+)?$" > > + > > + compatible: > > + const: ethernet-phy-package > > + > > + '#address-cells': > > + description: number of address cells for the MDIO bus > > + const: 1 > > + > > + '#size-cells': > > + description: number of size cells on the MDIO bus > > + const: 0 > > + > > + global-phys: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + minItems: 1 > > + maxItems: 31 > > + description: > > + List of phandle to the PHY in the package required and > > + used to configure the PHY package. > > + > > + global-phy-names: > > + $ref: /schemas/types.yaml#/definitions/string-array > > + minItems: 1 > > + maxItems: 31 > > + description: > > + List of names of the PHY defined in global-phys. > > + > > + phy-connection-type: > > + $ref: /schemas/net/ethernet-phy-mode-types.yaml#definitions/phy-connection-type > > + description: > > + Specifies global interface type for the PHY package. > > + > > + phy-mode: > > + $ref: "#/properties/phy-connection-type" > > + > > +patternProperties: > > + ^ethernet-phy(@[a-f0-9]+)?$: > > + $ref: /schemas/net/ethernet-phy.yaml# > > + > > +required: > > + - compatible > > + > > +dependencies: > > + global-phy-names: [global-phys] > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + ethernet { > > You mean 'mdio' here, right? > > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + ethernet-phy-package { > > This doesn't work. Child nodes of MDIO bus must be an MDIO device with > an address. What you need is a node with all the addresses of the > device: > > mdio { > ... > > ethernet-phy@1 { > compatible = "vendor,specifc-compatible-for-device"; > reg = <1>, <4>; > ... > }; > }; > > There's also some MDIO devices which define a secondary address as a > child device. Maybe those are similar to your situation. I don't recall > which ones offhand. > Ehh this is not really a situation. We really need a way to describe PHY package. (In the sense of device that expose multiple PHY package, as they can be treated as single one but they are actually in bulk of 2-4-5 PHY) qca807x is one example, quickinc is trying to push another PHY with just a similar implementation and Maxime Chevallier just pointed out that Marvell Alaska 88e1543 PHY also have this kind of configuration. I feel defining PHY in subnode is a MUST and using ethernet-phy might be confusing to describe PHY package (so I think a brand new node name might be a better solution) About the reg, I wonder if it would like it more if the PHY package node would include the reg as the first address of the package and the reg property as a list of all the reg the PHY package use. Something like this? ethernet-phy-package@1 { compatible = "ethernet-phy-package"; #address-cells = <1>; #size-cells = <0>; reg = <1>, <2>, <3>, <4>; global-phys = <&phy4>; global-phy-names = "base"; ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; phy4: ethernet-phy@4 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <4>; }; }; Thanks a lot for the review and I hope we can find a good and correct way to model this. Just hope we don't have to add all kind of proprerty to describe the idea of PHY package. (I think the current example makes it very clear that the PHY under the node are all part of a single piece on the device) > > + compatible = "ethernet-phy-package"; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + global-phys = <&phy4>; > > + global-phy-names = "base"; > > + > > + ethernet-phy@1 { > > + compatible = "ethernet-phy-ieee802.3-c22"; > > + reg = <1>; > > + }; > > + > > + phy4: ethernet-phy@4 { > > + compatible = "ethernet-phy-ieee802.3-c22"; > > + reg = <4>; > > + }; > > + }; > > + }; > > -- > > 2.40.1 > > -- Ansuel