All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Robert Marko <robert.marko@sartura.hr>,
	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 PATCH RFC v3 6/8] dt-bindings: net: Document Qcom QCA807x PHY package
Date: Mon, 27 Nov 2023 16:35:23 -0600	[thread overview]
Message-ID: <20231127223523.GB4023452-robh@kernel.org> (raw)
In-Reply-To: <20231126015346.25208-7-ansuelsmth@gmail.com>

On Sun, Nov 26, 2023 at 02:53:44AM +0100, Christian Marangi wrote:
> Document Qcom QCA807x PHY package.
> 
> Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5
> IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and
> 1000BASE-T PHY-s.
> 
> Document the required property to make the PHY package correctly
> configure and work.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../devicetree/bindings/net/qcom,qca807x.yaml | 136 ++++++++++++++++++
>  1 file changed, 136 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/qcom,qca807x.yaml b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> new file mode 100644
> index 000000000000..136ba2128b73
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> @@ -0,0 +1,136 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/qcom,qca807x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm QCA807X Ethernet PHY
> +
> +maintainers:
> +  - Christian Marangi <ansuelsmth@gmail.com>
> +  - Robert Marko <robert.marko@sartura.hr>
> +
> +description: |
> +  Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5
> +  IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and
> +  1000BASE-T PHY-s.
> +
> +  They feature 2 SerDes, one for PSGMII or QSGMII connection with
> +  MAC, while second one is SGMII for connection to MAC or fiber.
> +
> +  Both models have a combo port that supports 1000BASE-X and
> +  100BASE-FX fiber.
> +
> +  Each PHY inside of QCA807x series has 4 digitally controlled
> +  output only pins that natively drive LED-s for up to 2 attached
> +  LEDs. Some vendor also use these 4 output for GPIO usage without
> +  attaching LEDs.
> +
> +  Note that output pins can be set to drive LEDs OR GPIO, mixed
> +  definition are not accepted.

This so far is about the only thing that convinces me of having child 
nodes.

> +
> +  PHY package can be configured in 3 mode following this table:
> +
> +                First Serdes mode       Second Serdes mode
> +  Option 1      PSGMII for copper       Disabled
> +                ports 0-4
> +  Option 2      PSGMII for copper       1000BASE-X / 100BASE-FX
> +                ports 0-4
> +  Option 3      QSGMII for copper       SGMII for
> +                ports 0-3               copper port 4
> +
> +$ref: ethernet-phy-package.yaml#
> +

Did you test this binding? No, because there is nothing to select it. 
Just put a wrong value for qcom,package-mode and see.

ethernet-phy-package.yaml will be applied, but since it allows any extra 
properties not much is tested.

> +properties:
> +  qcom,package-mode:
> +    enum:
> +      - qsgmii
> +      - psgmii

description needed.

I don't understand how the 3 modes works with only 2 modes defined here.

> +
> +  qcom,tx-driver-strength:
> +    description: set the TX Amplifier value in mv.

millivolts or...

> +      If not defined, 600mw is set by default.

milliwatts?

Whatever it is, use standard unit suffix.

> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [140, 160, 180, 200, 220,
> +           240, 260, 280, 300, 320,
> +           400, 500, 600]
> +
> +patternProperties:
> +  ^ethernet-phy(@[a-f0-9]+)?$:

I'm confused. The addresses are MDIO, but you have just 0-4. Might be 
correct or might not?

In any case, the unit-address should be restricted to '@1?[0-9a-f]$'. 
Though that belongs in mdio.yaml and here '^ethernet-phy@' is sufficient 
(once there's a reference to mdio.yaml).

> +    $ref: ethernet-phy.yaml#

> +
> +    properties:
> +      gpio-controller:
> +        description: set the output lines as GPIO instead of LEDs
> +        type: boolean
> +
> +      '#gpio-cells':
> +        description: number of GPIO cells for the PHY
> +        const: 2
> +
> +    dependencies:
> +      gpio-controller: ['#gpio-cells']

No need for this, the common gpio schema does this.

> +
> +    if:
> +      required:
> +        - gpio-controller
> +    then:
> +      properties:
> +        leds: false
> +
> +    unevaluatedProperties: false

Move under $ref.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/leds/common.h>
> +
> +    mdio {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        ethernet-phy-package@0 {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            compatible = "ethernet-phy-package";
> +            reg = <0>;
> +
> +            qcom,package-mode = "qsgmii";

Nothing in here tells me this is a QCA807X other than this property 
(sort of). You need a specific compatible.

> +
> +            ethernet-phy@0 {
> +                reg = <0>;
> +
> +                leds {
> +                    #address-cells = <1>;
> +                    #size-cells = <0>;
> +
> +                    led@0 {
> +                        reg = <0>;
> +                        color = <LED_COLOR_ID_GREEN>;
> +                        function = LED_FUNCTION_LAN;
> +                        default-state = "keep";
> +                    };
> +                };
> +            };
> +
> +            ethernet-phy@1 {
> +                reg = <1>;
> +            };
> +
> +            ethernet-phy@2 {
> +                reg = <2>;
> +
> +                gpio-controller;
> +                #gpio-cells = <2>;
> +            };
> +
> +            ethernet-phy@3 {
> +                reg = <3>;
> +            };
> +
> +            ethernet-phy@4 {
> +                reg = <4>;
> +            };
> +        };
> +    };
> -- 
> 2.40.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Robert Marko <robert.marko@sartura.hr>,
	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 PATCH RFC v3 6/8] dt-bindings: net: Document Qcom QCA807x PHY package
Date: Mon, 27 Nov 2023 16:35:23 -0600	[thread overview]
Message-ID: <20231127223523.GB4023452-robh@kernel.org> (raw)
In-Reply-To: <20231126015346.25208-7-ansuelsmth@gmail.com>

On Sun, Nov 26, 2023 at 02:53:44AM +0100, Christian Marangi wrote:
> Document Qcom QCA807x PHY package.
> 
> Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5
> IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and
> 1000BASE-T PHY-s.
> 
> Document the required property to make the PHY package correctly
> configure and work.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../devicetree/bindings/net/qcom,qca807x.yaml | 136 ++++++++++++++++++
>  1 file changed, 136 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/qcom,qca807x.yaml b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> new file mode 100644
> index 000000000000..136ba2128b73
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml
> @@ -0,0 +1,136 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/qcom,qca807x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm QCA807X Ethernet PHY
> +
> +maintainers:
> +  - Christian Marangi <ansuelsmth@gmail.com>
> +  - Robert Marko <robert.marko@sartura.hr>
> +
> +description: |
> +  Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5
> +  IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and
> +  1000BASE-T PHY-s.
> +
> +  They feature 2 SerDes, one for PSGMII or QSGMII connection with
> +  MAC, while second one is SGMII for connection to MAC or fiber.
> +
> +  Both models have a combo port that supports 1000BASE-X and
> +  100BASE-FX fiber.
> +
> +  Each PHY inside of QCA807x series has 4 digitally controlled
> +  output only pins that natively drive LED-s for up to 2 attached
> +  LEDs. Some vendor also use these 4 output for GPIO usage without
> +  attaching LEDs.
> +
> +  Note that output pins can be set to drive LEDs OR GPIO, mixed
> +  definition are not accepted.

This so far is about the only thing that convinces me of having child 
nodes.

> +
> +  PHY package can be configured in 3 mode following this table:
> +
> +                First Serdes mode       Second Serdes mode
> +  Option 1      PSGMII for copper       Disabled
> +                ports 0-4
> +  Option 2      PSGMII for copper       1000BASE-X / 100BASE-FX
> +                ports 0-4
> +  Option 3      QSGMII for copper       SGMII for
> +                ports 0-3               copper port 4
> +
> +$ref: ethernet-phy-package.yaml#
> +

Did you test this binding? No, because there is nothing to select it. 
Just put a wrong value for qcom,package-mode and see.

ethernet-phy-package.yaml will be applied, but since it allows any extra 
properties not much is tested.

> +properties:
> +  qcom,package-mode:
> +    enum:
> +      - qsgmii
> +      - psgmii

description needed.

I don't understand how the 3 modes works with only 2 modes defined here.

> +
> +  qcom,tx-driver-strength:
> +    description: set the TX Amplifier value in mv.

millivolts or...

> +      If not defined, 600mw is set by default.

milliwatts?

Whatever it is, use standard unit suffix.

> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [140, 160, 180, 200, 220,
> +           240, 260, 280, 300, 320,
> +           400, 500, 600]
> +
> +patternProperties:
> +  ^ethernet-phy(@[a-f0-9]+)?$:

I'm confused. The addresses are MDIO, but you have just 0-4. Might be 
correct or might not?

In any case, the unit-address should be restricted to '@1?[0-9a-f]$'. 
Though that belongs in mdio.yaml and here '^ethernet-phy@' is sufficient 
(once there's a reference to mdio.yaml).

> +    $ref: ethernet-phy.yaml#

> +
> +    properties:
> +      gpio-controller:
> +        description: set the output lines as GPIO instead of LEDs
> +        type: boolean
> +
> +      '#gpio-cells':
> +        description: number of GPIO cells for the PHY
> +        const: 2
> +
> +    dependencies:
> +      gpio-controller: ['#gpio-cells']

No need for this, the common gpio schema does this.

> +
> +    if:
> +      required:
> +        - gpio-controller
> +    then:
> +      properties:
> +        leds: false
> +
> +    unevaluatedProperties: false

Move under $ref.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/leds/common.h>
> +
> +    mdio {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        ethernet-phy-package@0 {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            compatible = "ethernet-phy-package";
> +            reg = <0>;
> +
> +            qcom,package-mode = "qsgmii";

Nothing in here tells me this is a QCA807X other than this property 
(sort of). You need a specific compatible.

> +
> +            ethernet-phy@0 {
> +                reg = <0>;
> +
> +                leds {
> +                    #address-cells = <1>;
> +                    #size-cells = <0>;
> +
> +                    led@0 {
> +                        reg = <0>;
> +                        color = <LED_COLOR_ID_GREEN>;
> +                        function = LED_FUNCTION_LAN;
> +                        default-state = "keep";
> +                    };
> +                };
> +            };
> +
> +            ethernet-phy@1 {
> +                reg = <1>;
> +            };
> +
> +            ethernet-phy@2 {
> +                reg = <2>;
> +
> +                gpio-controller;
> +                #gpio-cells = <2>;
> +            };
> +
> +            ethernet-phy@3 {
> +                reg = <3>;
> +            };
> +
> +            ethernet-phy@4 {
> +                reg = <4>;
> +            };
> +        };
> +    };
> -- 
> 2.40.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-11-27 22:35 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-26  1:53 [net-next PATCH RFC v3 0/8] net: phy: Support DT PHY package Christian Marangi
2023-11-26  1:53 ` Christian Marangi
2023-11-26  1:53 ` [net-next PATCH RFC v3 1/8] dt-bindings: net: document ethernet PHY package nodes Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-27 22:16   ` Rob Herring
2023-11-27 22:16     ` Rob Herring
2023-11-28  0:09     ` Andrew Lunn
2023-11-28  0:09       ` Andrew Lunn
2024-01-07 18:00   ` Sergey Ryazanov
2024-01-07 18:00     ` Sergey Ryazanov
2024-01-07 18:30     ` Christian Marangi
2024-01-07 18:30       ` Christian Marangi
2024-01-07 18:44       ` Andrew Lunn
2024-01-07 18:44         ` Andrew Lunn
2024-01-07 21:57         ` Sergey Ryazanov
2024-01-07 21:57           ` Sergey Ryazanov
2024-01-07 21:49       ` Sergey Ryazanov
2024-01-07 21:49         ` Sergey Ryazanov
2024-01-07 21:45         ` Christian Marangi
2024-01-07 21:45           ` Christian Marangi
2024-01-17  0:36         ` Christian Marangi
2024-01-17  0:36           ` Christian Marangi
2024-01-17 19:39           ` Sergey Ryazanov
2024-01-17 19:39             ` Sergey Ryazanov
2024-01-17 20:03             ` Christian Marangi
2024-01-17 20:03               ` Christian Marangi
2024-01-17 20:05             ` Andrew Lunn
2024-01-17 20:05               ` Andrew Lunn
2024-01-07 18:31     ` Andrew Lunn
2024-01-07 18:31       ` Andrew Lunn
2024-01-08 11:13       ` Jie Luo
2024-01-08 11:13         ` Jie Luo
2024-01-08 13:19         ` Andrew Lunn
2024-01-08 13:19           ` Andrew Lunn
2024-01-09 11:44           ` Jie Luo
2024-01-09 11:44             ` Jie Luo
2024-01-09 13:48             ` Andrew Lunn
2024-01-09 13:48               ` Andrew Lunn
2024-01-10  3:13               ` Jie Luo
2024-01-10  3:13                 ` Jie Luo
2023-11-26  1:53 ` [net-next PATCH RFC v3 2/8] net: phy: add initial support for PHY package in DT Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-28  0:39   ` Andrew Lunn
2023-11-28  0:39     ` Andrew Lunn
2023-11-28 12:09     ` Christian Marangi
2023-11-28 12:09       ` Christian Marangi
2023-11-26  1:53 ` [net-next PATCH RFC v3 3/8] net: phy: add support for shared priv data size " Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-26  1:53 ` [net-next PATCH RFC v3 4/8] net: phy: add support for driver specific PHY package probe/config Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-26  1:53 ` [net-next PATCH RFC v3 5/8] dt-bindings: net: add QCA807x PHY defines Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-27 22:36   ` Rob Herring
2023-11-27 22:36     ` Rob Herring
2023-11-26  1:53 ` [net-next PATCH RFC v3 6/8] dt-bindings: net: Document Qcom QCA807x PHY package Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-27 22:35   ` Rob Herring [this message]
2023-11-27 22:35     ` Rob Herring
2023-11-28  0:30   ` Andrew Lunn
2023-11-28  0:30     ` Andrew Lunn
2023-11-26  1:53 ` [net-next PATCH RFC v3 7/8] net: phy: add Qualcom QCA807x driver Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-26  1:53 ` [net-next PATCH RFC v3 8/8] net: phy: qca807x: Add support for configurable LED Christian Marangi
2023-11-26  1:53   ` Christian Marangi
2023-11-28  0:20 ` [net-next PATCH RFC v3 0/8] net: phy: Support DT PHY package Andrew Lunn
2023-11-28  0:20   ` Andrew Lunn

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=20231127223523.GB4023452-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=ansuelsmth@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=matthias.bgg@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robert.marko@sartura.hr \
    /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.