From: Rob Herring <robh@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Daniel Danzberger <dd@embedd.com>, Arnd Bergmann <arnd@arndb.de>,
Alexander Sverdlin <alexander.sverdlin@gmail.com>,
Nikita Shubin <nikita.shubin@maquefel.me>,
Linus Walleij <linus.walleij@linaro.org>,
Yangyu Chen <cyy@cyyself.name>,
Ben Hutchings <ben@decadent.org.uk>, Felix Fietkau <nbd@nbd.name>,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-phy@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-usb@vger.kernel.org,
upstream@airoha.com
Subject: Re: [PATCH v2 03/11] dt-bindings: clock: en7523: add Documentation for Airoha AN7581 SCU SSR
Date: Fri, 21 Mar 2025 17:37:34 -0500 [thread overview]
Message-ID: <20250321223734.GA6837-robh@kernel.org> (raw)
In-Reply-To: <20250320130054.4804-4-ansuelsmth@gmail.com>
On Thu, Mar 20, 2025 at 02:00:26PM +0100, Christian Marangi wrote:
> The Airoha AN7581 SoC have in the SCU register space particular
> address that control how some peripheral are configured.
>
> These are toggeled in the System Status Register and are used to
> toggle Serdes port for USB 3.0 mode or HSGMII, USB 3.0 mode or PCIe2
> or setup port for PCIe mode or Ethrnet mode (HSGMII/USXGMII).
>
> Modes are mutually exclusive and selecting one mode cause the
> other feature to not work (example a mode in USB 3.0 cause PCIe
> port 2 to not work) This depends also on what is physically
> connected to the Hardware and needs to correctly reflect the
> System Status Register bits.
>
> Special care is needed for PCIe port 0 in 2 line mode that
> requires both WiFi1 and WiFi2 Serdes port set to PCIe0 2 Line
> mode.
>
> Expose these configuration as an enum of strings in the SCU node and
> also add dt-bindings header to reference each serdes port in DT.
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> .../bindings/clock/airoha,en7523-scu.yaml | 101 ++++++++++++++++--
> MAINTAINERS | 7 ++
> include/dt-bindings/soc/airoha,scu-ssr.h | 11 ++
> 3 files changed, 110 insertions(+), 9 deletions(-)
> create mode 100644 include/dt-bindings/soc/airoha,scu-ssr.h
>
> diff --git a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> index fe2c5c1baf43..637ce0e06619 100644
> --- a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> +++ b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> @@ -9,6 +9,7 @@ title: EN7523 Clock
> maintainers:
> - Felix Fietkau <nbd@nbd.name>
> - John Crispin <nbd@nbd.name>
> + - Christian Marangi <ansuelsmth@gmail.com>
>
> description: |
> This node defines the System Control Unit of the EN7523 SoC,
> @@ -26,6 +27,23 @@ description: |
>
> The clocks are provided inside a system controller node.
>
> + The System Control Unit may also set different mode for the Serdes ports
> + present on the SoC.
> +
> + These are toggeled in the System Status Register and are used to
> + toggle Serdes port for USB 3.0 mode or HSGMII, USB 3.0 mode or PCIe2
> + or setup port for PCIe mode or Ethernet mode (HSGMII/USXGMII).
> +
> + Modes are mutually exclusive and selecting one mode cause the
> + other feature to not work (example a mode in USB 3.0 cause PCIe
> + port 2 to not work) This depends also on what is physically
> + connected to the Hardware and needs to correctly reflect the
> + System Status Register bits.
> +
> + Special care is needed for PCIe port 0 in 2 line mode that
> + requires both WiFi1 and WiFi2 Serdes port set to PCIe0 2 Line
> + mode.
> +
> properties:
> compatible:
> items:
> @@ -49,6 +67,40 @@ properties:
> description: ID of the controller reset line
> const: 1
>
> + airoha,serdes-wifi1:
> + description: Configure the WiFi1 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - pcie0_x2
> + - pcie0_x1
> + - ethernet
> + default: pcie0_x1
> +
> + airoha,serdes-wifi2:
> + description: Configure the WiFi2 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - pcie0_x2
> + - pcie1_x1
> + - ethernet
> + default: pcie1_x1
> +
> + airoha,serdes-usb1:
> + description: Configure the USB1 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - usb3
> + - ethernet
> + default: usb3
> +
> + airoha,serdes-usb2:
> + description: Configure the USB2 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - usb3
> + - pcie2_x1
> + default: usb3
Couldn't you make this a phy provider and use the mode flags in the
phy cells?
> +
> required:
> - compatible
> - reg
> @@ -64,6 +116,12 @@ allOf:
> reg:
> minItems: 2
>
> + airoha,serdes-wifi1: false
> + airoha,serdes-wifi2: false
> +
> + airoha,serdes-usb1: false
> + airoha,serdes-usb2: false
> +
> '#reset-cells': false
>
> - if:
> @@ -75,6 +133,24 @@ allOf:
> reg:
> maxItems: 1
>
> + - if:
> + properties:
> + airoha,serdes-wifi1:
> + const: pcie0_x2
This is also true if airoha,serdes-wifi1 is not present. Probably not
what you intended.
> + then:
> + properties:
> + airoha,serdes-wifi2:
> + const: pcie0_x2
> +
> + - if:
> + properties:
> + airoha,serdes-wifi2:
> + const: pcie0_x2
> + then:
> + properties:
> + airoha,serdes-wifi1:
> + const: pcie0_x2
> +
> additionalProperties: false
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Daniel Danzberger <dd@embedd.com>, Arnd Bergmann <arnd@arndb.de>,
Alexander Sverdlin <alexander.sverdlin@gmail.com>,
Nikita Shubin <nikita.shubin@maquefel.me>,
Linus Walleij <linus.walleij@linaro.org>,
Yangyu Chen <cyy@cyyself.name>,
Ben Hutchings <ben@decadent.org.uk>, Felix Fietkau <nbd@nbd.name>,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-phy@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-usb@vger.kernel.org,
upstream@airoha.com
Subject: Re: [PATCH v2 03/11] dt-bindings: clock: en7523: add Documentation for Airoha AN7581 SCU SSR
Date: Fri, 21 Mar 2025 17:37:34 -0500 [thread overview]
Message-ID: <20250321223734.GA6837-robh@kernel.org> (raw)
In-Reply-To: <20250320130054.4804-4-ansuelsmth@gmail.com>
On Thu, Mar 20, 2025 at 02:00:26PM +0100, Christian Marangi wrote:
> The Airoha AN7581 SoC have in the SCU register space particular
> address that control how some peripheral are configured.
>
> These are toggeled in the System Status Register and are used to
> toggle Serdes port for USB 3.0 mode or HSGMII, USB 3.0 mode or PCIe2
> or setup port for PCIe mode or Ethrnet mode (HSGMII/USXGMII).
>
> Modes are mutually exclusive and selecting one mode cause the
> other feature to not work (example a mode in USB 3.0 cause PCIe
> port 2 to not work) This depends also on what is physically
> connected to the Hardware and needs to correctly reflect the
> System Status Register bits.
>
> Special care is needed for PCIe port 0 in 2 line mode that
> requires both WiFi1 and WiFi2 Serdes port set to PCIe0 2 Line
> mode.
>
> Expose these configuration as an enum of strings in the SCU node and
> also add dt-bindings header to reference each serdes port in DT.
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> .../bindings/clock/airoha,en7523-scu.yaml | 101 ++++++++++++++++--
> MAINTAINERS | 7 ++
> include/dt-bindings/soc/airoha,scu-ssr.h | 11 ++
> 3 files changed, 110 insertions(+), 9 deletions(-)
> create mode 100644 include/dt-bindings/soc/airoha,scu-ssr.h
>
> diff --git a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> index fe2c5c1baf43..637ce0e06619 100644
> --- a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> +++ b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
> @@ -9,6 +9,7 @@ title: EN7523 Clock
> maintainers:
> - Felix Fietkau <nbd@nbd.name>
> - John Crispin <nbd@nbd.name>
> + - Christian Marangi <ansuelsmth@gmail.com>
>
> description: |
> This node defines the System Control Unit of the EN7523 SoC,
> @@ -26,6 +27,23 @@ description: |
>
> The clocks are provided inside a system controller node.
>
> + The System Control Unit may also set different mode for the Serdes ports
> + present on the SoC.
> +
> + These are toggeled in the System Status Register and are used to
> + toggle Serdes port for USB 3.0 mode or HSGMII, USB 3.0 mode or PCIe2
> + or setup port for PCIe mode or Ethernet mode (HSGMII/USXGMII).
> +
> + Modes are mutually exclusive and selecting one mode cause the
> + other feature to not work (example a mode in USB 3.0 cause PCIe
> + port 2 to not work) This depends also on what is physically
> + connected to the Hardware and needs to correctly reflect the
> + System Status Register bits.
> +
> + Special care is needed for PCIe port 0 in 2 line mode that
> + requires both WiFi1 and WiFi2 Serdes port set to PCIe0 2 Line
> + mode.
> +
> properties:
> compatible:
> items:
> @@ -49,6 +67,40 @@ properties:
> description: ID of the controller reset line
> const: 1
>
> + airoha,serdes-wifi1:
> + description: Configure the WiFi1 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - pcie0_x2
> + - pcie0_x1
> + - ethernet
> + default: pcie0_x1
> +
> + airoha,serdes-wifi2:
> + description: Configure the WiFi2 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - pcie0_x2
> + - pcie1_x1
> + - ethernet
> + default: pcie1_x1
> +
> + airoha,serdes-usb1:
> + description: Configure the USB1 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - usb3
> + - ethernet
> + default: usb3
> +
> + airoha,serdes-usb2:
> + description: Configure the USB2 Serdes port
> + $ref: /schemas/types.yaml#/definitions/string
> + enum:
> + - usb3
> + - pcie2_x1
> + default: usb3
Couldn't you make this a phy provider and use the mode flags in the
phy cells?
> +
> required:
> - compatible
> - reg
> @@ -64,6 +116,12 @@ allOf:
> reg:
> minItems: 2
>
> + airoha,serdes-wifi1: false
> + airoha,serdes-wifi2: false
> +
> + airoha,serdes-usb1: false
> + airoha,serdes-usb2: false
> +
> '#reset-cells': false
>
> - if:
> @@ -75,6 +133,24 @@ allOf:
> reg:
> maxItems: 1
>
> + - if:
> + properties:
> + airoha,serdes-wifi1:
> + const: pcie0_x2
This is also true if airoha,serdes-wifi1 is not present. Probably not
what you intended.
> + then:
> + properties:
> + airoha,serdes-wifi2:
> + const: pcie0_x2
> +
> + - if:
> + properties:
> + airoha,serdes-wifi2:
> + const: pcie0_x2
> + then:
> + properties:
> + airoha,serdes-wifi1:
> + const: pcie0_x2
> +
> additionalProperties: false
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2025-03-21 22:39 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-20 13:00 [PATCH v2 00/11] airoha: en7581: clk cleanup + USB support Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 01/11] clk: en7523: convert driver to regmap API Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 02/11] clk: en7523: generalize register clocks function Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 03/11] dt-bindings: clock: en7523: add Documentation for Airoha AN7581 SCU SSR Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-21 22:37 ` Rob Herring [this message]
2025-03-21 22:37 ` Rob Herring
2025-03-20 13:00 ` [PATCH v2 04/11] soc: airoha: add support for configuring SCU SSR Serdes port Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 14:49 ` Arnd Bergmann
2025-03-20 14:49 ` Arnd Bergmann
2025-03-20 14:59 ` Christian Marangi
2025-03-20 14:59 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 05/11] clk: en7523: define and register SoC SCU SSR driver for EN7581 Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 06/11] soc: airoha: scu-ssr: expose API to read current Serdes Port mode Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 07/11] dt-bindings: phy: Add documentation for Airoha AN7581 USB PHY Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-24 15:49 ` Rob Herring
2025-03-24 15:49 ` Rob Herring
2025-03-20 13:00 ` [PATCH v2 08/11] phy: move Airoha PCIe PHY driver to dedicated directory Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 09/11] phy: airoha: Add support for Airoha AN7581 USB PHY Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 10/11] usb: host: add ARCH_AIROHA in XHCI MTK dependency Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 13:00 ` [PATCH v2 11/11] arm64: dts: airoha: en7581: add USB nodes Christian Marangi
2025-03-20 13:00 ` Christian Marangi
2025-03-20 18:26 ` [PATCH v2 00/11] airoha: en7581: clk cleanup + USB support Rob Herring (Arm)
2025-03-20 18:26 ` Rob Herring (Arm)
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=20250321223734.GA6837-robh@kernel.org \
--to=robh@kernel.org \
--cc=alexander.sverdlin@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=ansuelsmth@gmail.com \
--cc=arnd@arndb.de \
--cc=ben@decadent.org.uk \
--cc=conor+dt@kernel.org \
--cc=cyy@cyyself.name \
--cc=dd@embedd.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-usb@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=mturquette@baylibre.com \
--cc=nbd@nbd.name \
--cc=nikita.shubin@maquefel.me \
--cc=sboyd@kernel.org \
--cc=upstream@airoha.com \
--cc=vkoul@kernel.org \
/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.