From: Shawn Guo <shawnguo@kernel.org>
To: Sean Anderson <sean.anderson@seco.com>
Cc: Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
linux-phy@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
Camelia Alexandra Groza <camelia.groza@nxp.com>,
Madalin Bucur <madalin.bucur@nxp.com>,
Bagas Sanjaya <bagasdotme@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Ioana Ciornei <ioana.ciornei@nxp.com>,
linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Li Yang <leoyang.li@nxp.com>
Subject: Re: [PATCH v9 07/10] arm64: dts: ls1046ardb: Add serdes bindings
Date: Thu, 26 Jan 2023 07:43:40 +0800 [thread overview]
Message-ID: <20230125234335.GC20713@T480> (raw)
In-Reply-To: <20221230000139.2846763-8-sean.anderson@seco.com>
On Thu, Dec 29, 2022 at 07:01:36PM -0500, Sean Anderson wrote:
> This adds appropriate bindings for the macs which use the SerDes. The
> 156.25MHz fixed clock is a crystal. The 100MHz clocks (there are
> actually 3) come from a Renesas 6V49205B at address 69 on i2c0. There is
> no driver for this device (and as far as I know all you can do with the
> 100MHz clocks is gate them), so I have chosen to model it as a single
> fixed clock.
>
> Note: the SerDes1 lane numbering for the LS1046A is *reversed*.
> This means that Lane A (what the driver thinks is lane 0) uses pins
> SD1_TX3_P/N.
>
> Because this will break ethernet if the serdes is not enabled, enable
> the serdes driver by default on Layerscape.
>
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
> This depends on [1].
>
> [1] https://lore.kernel.org/netdev/20220804194705.459670-4-sean.anderson@seco.com/
>
> Changes in v9:
> - Fix name of phy mode node
> - phy-type -> fsl,phy
>
> Changes in v8:
> - Rename serdes phy handles to use _A, _B, etc. instead of _0, _1, etc.
> This should help remind readers that the numbering corresponds to the
> physical layout of the registers, and not the lane (pin) number.
>
> Changes in v6:
> - XGI.9 -> XFI.9
>
> Changes in v4:
> - Convert to new bindings
>
> .../boot/dts/freescale/fsl-ls1046a-rdb.dts | 112 ++++++++++++++++++
> drivers/phy/freescale/Kconfig | 1 +
The phy driver Kconfig change shouldn't be part of this patch.
> 2 files changed, 113 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
> index 7025aad8ae89..534f19855b47 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
> @@ -10,6 +10,8 @@
>
> /dts-v1/;
>
> +#include <dt-bindings/phy/phy.h>
> +
> #include "fsl-ls1046a.dtsi"
>
> / {
> @@ -26,8 +28,110 @@ aliases {
> chosen {
> stdout-path = "serial0:115200n8";
> };
> +
> + clocks {
Drop this container node.
Shawn
> + clk_100mhz: clock-100mhz {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <100000000>;
> + };
> +
> + clk_156mhz: clock-156mhz {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <156250000>;
> + };
> + };
> };
>
> +&serdes1 {
> + clocks = <&clk_100mhz>, <&clk_156mhz>;
> + clock-names = "ref0", "ref1";
> + status = "okay";
> +
> + /*
> + * XXX: Lane A uses pins SD1_RX3_P/N! That is, the lane numbers and pin
> + * numbers are _reversed_. In addition, the PCCR documentation is
> + * _inconsistent_ in its usage of these terms!
> + *
> + * PCCR "Lane 0" refers to...
> + * ==== =====================
> + * 0 Lane A
> + * 2 Lane A
> + * 8 Lane A
> + * 9 Lane A
> + * B Lane D!
> + */
> + serdes1_A: phy@0 {
> + #phy-cells = <0>;
> + reg = <0>;
> +
> + /* SGMII.6 */
> + sgmii-0 {
> + fsl,pccr = <0x8>;
> + fsl,index = <0>;
> + fsl,cfg = <0x1>;
> + fsl,type = <PHY_TYPE_SGMII>;
> + };
> + };
> +
> + serdes1_B: phy@1 {
> + #phy-cells = <0>;
> + reg = <1>;
> +
> + /* SGMII.5 */
> + sgmii-1 {
> + fsl,pccr = <0x8>;
> + fsl,index = <1>;
> + fsl,cfg = <0x1>;
> + fsl,type = <PHY_TYPE_2500BASEX>;
> + };
> + };
> +
> + serdes1_C: phy@2 {
> + #phy-cells = <0>;
> + reg = <2>;
> +
> + /* SGMII.10 */
> + sgmii-2 {
> + fsl,pccr = <0x8>;
> + fsl,index = <2>;
> + fsl,cfg = <0x1>;
> + fsl,type = <PHY_TYPE_2500BASEX>;
> + };
> +
> + /* XFI.10 */
> + xfi-0 {
> + fsl,pccr = <0xb>;
> + fsl,index = <0>;
> + fsl,cfg = <0x2>;
> + fsl,type = <PHY_TYPE_10GBASER>;
> + };
> + };
> +
> + serdes1_D: phy@3 {
> + #phy-cells = <0>;
> + reg = <3>;
> +
> + /* SGMII.9 */
> + sgmii-3 {
> + fsl,pccr = <0x8>;
> + fsl,index = <3>;
> + fsl,cfg = <0x1>;
> + fsl,type = <PHY_TYPE_2500BASEX>;
> + };
> +
> + /* XFI.9 */
> + xfi-1 {
> + fsl,pccr = <0xb>;
> + fsl,index = <1>;
> + fsl,cfg = <0x1>;
> + fsl,type = <PHY_TYPE_10GBASER>;
> + };
> + };
> +};
> +
> +
> &duart0 {
> status = "okay";
> };
> @@ -140,21 +244,29 @@ ethernet@e6000 {
> ethernet@e8000 {
> phy-handle = <&sgmii_phy1>;
> phy-connection-type = "sgmii";
> + phys = <&serdes1_B>;
> + phy-names = "serdes";
> };
>
> ethernet@ea000 {
> phy-handle = <&sgmii_phy2>;
> phy-connection-type = "sgmii";
> + phys = <&serdes1_A>;
> + phy-names = "serdes";
> };
>
> ethernet@f0000 { /* 10GEC1 */
> phy-handle = <&aqr106_phy>;
> phy-connection-type = "xgmii";
> + phys = <&serdes1_D>;
> + phy-names = "serdes";
> };
>
> ethernet@f2000 { /* 10GEC2 */
> fixed-link = <0 1 1000 0 0>;
> phy-connection-type = "xgmii";
> + phys = <&serdes1_C>;
> + phy-names = "serdes";
> };
>
> mdio@fc000 {
> diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig
> index 6bebe00f5889..b396162dc859 100644
> --- a/drivers/phy/freescale/Kconfig
> +++ b/drivers/phy/freescale/Kconfig
> @@ -54,6 +54,7 @@ config PHY_FSL_LYNX_10G
> depends on ARCH_LAYERSCAPE || PPC || COMPILE_TEST
> select GENERIC_PHY
> select REGMAP_MMIO
> + default y if ARCH_LAYERSCAPE
> help
> This adds support for the Lynx "SerDes" devices found on various QorIQ
> SoCs. There may be up to four SerDes devices on each SoC, and each
> --
> 2.35.1.1320.gc452695387.dirty
>
next prev parent reply other threads:[~2023-01-25 23:44 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-30 0:01 [PATCH v9 00/10] phy: Add support for Lynx 10G SerDes Sean Anderson
2022-12-30 0:01 ` [PATCH v9 01/10] dt-bindings: phy: Add 2500BASE-X and 10GBASE-R Sean Anderson
2022-12-30 0:01 ` [PATCH v9 02/10] dt-bindings: phy: Add Lynx 10G phy binding Sean Anderson
2023-01-12 20:37 ` Rob Herring
2022-12-30 0:01 ` [PATCH v9 03/10] dt-bindings: clock: Add ids for Lynx 10g PLLs Sean Anderson
2022-12-30 0:01 ` [PATCH v9 04/10] clk: Add Lynx 10G SerDes PLL driver Sean Anderson
2023-01-27 20:59 ` Stephen Boyd
2023-01-27 21:51 ` Sean Anderson
2023-03-03 17:25 ` Sean Anderson
2022-12-30 0:01 ` [PATCH v9 05/10] phy: fsl: Add Lynx 10G SerDes driver Sean Anderson
2023-01-03 18:30 ` kernel test robot
2022-12-30 0:01 ` [PATCH v9 06/10] arm64: dts: ls1046a: Add serdes bindings Sean Anderson
2023-01-25 23:46 ` Shawn Guo
2023-01-26 16:43 ` Sean Anderson
2023-01-27 7:53 ` Shawn Guo
2022-12-30 0:01 ` [PATCH v9 07/10] arm64: dts: ls1046ardb: " Sean Anderson
2023-01-25 23:43 ` Shawn Guo [this message]
2023-01-26 16:48 ` Sean Anderson
2023-01-27 7:52 ` Shawn Guo
2023-01-27 16:11 ` Sean Anderson
2023-01-27 16:15 ` Krzysztof Kozlowski
2023-01-27 16:22 ` Sean Anderson
2023-01-27 16:41 ` Krzysztof Kozlowski
2023-01-27 16:42 ` Sean Anderson
2023-01-27 16:44 ` Krzysztof Kozlowski
2022-12-30 0:01 ` [PATCH v9 08/10] arm64: dts: ls1088a: " Sean Anderson
2023-01-25 23:48 ` Shawn Guo
2023-01-26 17:54 ` Sean Anderson
2022-12-30 0:01 ` [PATCH v9 09/10] arm64: dts: ls1088a: Prevent PCSs from probing as phys Sean Anderson
2022-12-30 0:01 ` [PATCH v9 10/10] arm64: dts: ls1088ardb: Add serdes bindings Sean Anderson
2023-01-17 16:46 ` [PATCH v9 00/10] phy: Add support for Lynx 10G SerDes Sean Anderson
2023-01-18 16:54 ` Vinod Koul
2023-01-19 16:22 ` Sean Anderson
2023-01-20 8:06 ` Vinod Koul
2023-01-20 16:43 ` Sean Anderson
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=20230125234335.GC20713@T480 \
--to=shawnguo@kernel.org \
--cc=bagasdotme@gmail.com \
--cc=camelia.groza@nxp.com \
--cc=devicetree@vger.kernel.org \
--cc=ioana.ciornei@nxp.com \
--cc=kishon@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=leoyang.li@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-phy@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=madalin.bucur@nxp.com \
--cc=robh+dt@kernel.org \
--cc=sean.anderson@seco.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).