linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup
@ 2020-12-09 12:20 Oleksij Rempel
  2020-12-09 14:32 ` Fabio Estevam
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Oleksij Rempel @ 2020-12-09 12:20 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Andrew Lunn, Florian Fainelli, Heiner Kallweit
  Cc: Oleksij Rempel, kernel, netdev, linux-arm-kernel, linux-kernel,
	linux-imx, Fabio Estevam, David Jander, Russell King,
	Philippe Schenker

Remove board specific PHY fixup introduced by commit:

| 709bc0657fe6f9f5 ("ARM: imx6ul: add fec MAC refrence clock and phy fixup init")

This fixup addresses boards with a specific configuration: a KSZ8081RNA
PHY with attached clock source to XI (Pin 8) of the PHY equal to 50MHz.

For the KSZ8081RND PHY, the meaning of the reg 0x1F bit 7 is different
(compared to the KSZ8081RNA). A set bit means:

- KSZ8081RNA: clock input to XI (Pin 8) is 50MHz for RMII
- KSZ8081RND: clock input to XI (Pin 8) is 25MHz for RMII

In other configurations, for example a KSZ8081RND PHY or a KSZ8081RNA
with 25Mhz clock source, the PHY will glitch and stay in not recoverable
state.

It is not possible to detect the clock source frequency of the PHY. And
it is not possible to automatically detect KSZ8081 PHY variant - both
have same PHY ID. It is not possible to overwrite the fixup
configuration by providing proper device tree description. The only way
is to remove this fixup.

If this patch breaks network functionality on your board, fix it by
adding PHY node with following properties:

	ethernet-phy@x {
		...
		micrel,led-mode = <1>;
		clocks = <&clks IMX6UL_CLK_ENET_REF>;
		clock-names = "rmii-ref";
		...
	};

The board which was referred in the initial patch is already fixed.
See: arch/arm/boot/dts/imx6ul-14x14-evk.dtsi

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
 arch/arm/mach-imx/mach-imx6ul.c | 21 ---------------------
 1 file changed, 21 deletions(-)

diff --git a/arch/arm/mach-imx/mach-imx6ul.c b/arch/arm/mach-imx/mach-imx6ul.c
index e018e716735f..eabcd35c01a5 100644
--- a/arch/arm/mach-imx/mach-imx6ul.c
+++ b/arch/arm/mach-imx/mach-imx6ul.c
@@ -27,30 +27,9 @@ static void __init imx6ul_enet_clk_init(void)
 		pr_err("failed to find fsl,imx6ul-iomux-gpr regmap\n");
 }
 
-static int ksz8081_phy_fixup(struct phy_device *dev)
-{
-	if (dev && dev->interface == PHY_INTERFACE_MODE_MII) {
-		phy_write(dev, 0x1f, 0x8110);
-		phy_write(dev, 0x16, 0x201);
-	} else if (dev && dev->interface == PHY_INTERFACE_MODE_RMII) {
-		phy_write(dev, 0x1f, 0x8190);
-		phy_write(dev, 0x16, 0x202);
-	}
-
-	return 0;
-}
-
-static void __init imx6ul_enet_phy_init(void)
-{
-	if (IS_BUILTIN(CONFIG_PHYLIB))
-		phy_register_fixup_for_uid(PHY_ID_KSZ8081, MICREL_PHY_ID_MASK,
-					   ksz8081_phy_fixup);
-}
-
 static inline void imx6ul_enet_init(void)
 {
 	imx6ul_enet_clk_init();
-	imx6ul_enet_phy_init();
 }
 
 static void __init imx6ul_init_machine(void)
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup
  2020-12-09 12:20 [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup Oleksij Rempel
@ 2020-12-09 14:32 ` Fabio Estevam
  2020-12-10 10:15 ` Sébastien Szymanski
  2021-01-07  3:19 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Fabio Estevam @ 2020-12-09 14:32 UTC (permalink / raw)
  To: Oleksij Rempel
  Cc: Shawn Guo, Sascha Hauer, Andrew Lunn, Florian Fainelli,
	Heiner Kallweit, Sascha Hauer, netdev,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	linux-kernel, NXP Linux Team, David Jander, Russell King,
	Philippe Schenker

On Wed, Dec 9, 2020 at 9:21 AM Oleksij Rempel <o.rempel@pengutronix.de> wrote:
>
> Remove board specific PHY fixup introduced by commit:
>
> | 709bc0657fe6f9f5 ("ARM: imx6ul: add fec MAC refrence clock and phy fixup init")
>
> This fixup addresses boards with a specific configuration: a KSZ8081RNA
> PHY with attached clock source to XI (Pin 8) of the PHY equal to 50MHz.
>
> For the KSZ8081RND PHY, the meaning of the reg 0x1F bit 7 is different
> (compared to the KSZ8081RNA). A set bit means:
>
> - KSZ8081RNA: clock input to XI (Pin 8) is 50MHz for RMII
> - KSZ8081RND: clock input to XI (Pin 8) is 25MHz for RMII
>
> In other configurations, for example a KSZ8081RND PHY or a KSZ8081RNA
> with 25Mhz clock source, the PHY will glitch and stay in not recoverable
> state.
>
> It is not possible to detect the clock source frequency of the PHY. And
> it is not possible to automatically detect KSZ8081 PHY variant - both
> have same PHY ID. It is not possible to overwrite the fixup
> configuration by providing proper device tree description. The only way
> is to remove this fixup.
>
> If this patch breaks network functionality on your board, fix it by
> adding PHY node with following properties:
>
>         ethernet-phy@x {
>                 ...
>                 micrel,led-mode = <1>;
>                 clocks = <&clks IMX6UL_CLK_ENET_REF>;
>                 clock-names = "rmii-ref";
>                 ...
>         };
>
> The board which was referred in the initial patch is already fixed.
> See: arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
>
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup
  2020-12-09 12:20 [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup Oleksij Rempel
  2020-12-09 14:32 ` Fabio Estevam
@ 2020-12-10 10:15 ` Sébastien Szymanski
  2021-01-07  3:19 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Sébastien Szymanski @ 2020-12-10 10:15 UTC (permalink / raw)
  To: Oleksij Rempel, Shawn Guo, Sascha Hauer, Andrew Lunn,
	Florian Fainelli, Heiner Kallweit
  Cc: Philippe Schenker, netdev, linux-kernel, Russell King, linux-imx,
	kernel, David Jander, Fabio Estevam, linux-arm-kernel

Hi,

On 12/9/20 1:20 PM, Oleksij Rempel wrote:
> Remove board specific PHY fixup introduced by commit:
> 
> | 709bc0657fe6f9f5 ("ARM: imx6ul: add fec MAC refrence clock and phy fixup init")
> 
> This fixup addresses boards with a specific configuration: a KSZ8081RNA
> PHY with attached clock source to XI (Pin 8) of the PHY equal to 50MHz.
> 
> For the KSZ8081RND PHY, the meaning of the reg 0x1F bit 7 is different
> (compared to the KSZ8081RNA). A set bit means:
> 
> - KSZ8081RNA: clock input to XI (Pin 8) is 50MHz for RMII
> - KSZ8081RND: clock input to XI (Pin 8) is 25MHz for RMII

OPOS6UL has a KSZ80801RNB. On this PHY variant, bit 7 of reg 0x1F means:
1: RMII 50MHz clock mode; clock input to XI (Pin 9) is 50MHz
0: RMII 25MHz clock mode; clock input to XI (Pin 9) is 25MHz

> 
> In other configurations, for example a KSZ8081RND PHY or a KSZ8081RNA
> with 25Mhz clock source, the PHY will glitch and stay in not recoverable
> state.
> 
> It is not possible to detect the clock source frequency of the PHY. And
> it is not possible to automatically detect KSZ8081 PHY variant - both
> have same PHY ID. It is not possible to overwrite the fixup
> configuration by providing proper device tree description. The only way
> is to remove this fixup.
> 
> If this patch breaks network functionality on your board, fix it by
> adding PHY node with following properties:
> 
> 	ethernet-phy@x {
> 		...
> 		micrel,led-mode = <1>;
> 		clocks = <&clks IMX6UL_CLK_ENET_REF>;
> 		clock-names = "rmii-ref";
> 		...
> 	};

On OPOS6UL, this fix do fixes network breakage introduced by this patch.
So, for OPOS6UL,

Tested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>

> 
> The board which was referred in the initial patch is already fixed.
> See: arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
> 
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> ---
>  arch/arm/mach-imx/mach-imx6ul.c | 21 ---------------------
>  1 file changed, 21 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mach-imx6ul.c b/arch/arm/mach-imx/mach-imx6ul.c
> index e018e716735f..eabcd35c01a5 100644
> --- a/arch/arm/mach-imx/mach-imx6ul.c
> +++ b/arch/arm/mach-imx/mach-imx6ul.c
> @@ -27,30 +27,9 @@ static void __init imx6ul_enet_clk_init(void)
>  		pr_err("failed to find fsl,imx6ul-iomux-gpr regmap\n");
>  }
>  
> -static int ksz8081_phy_fixup(struct phy_device *dev)
> -{
> -	if (dev && dev->interface == PHY_INTERFACE_MODE_MII) {
> -		phy_write(dev, 0x1f, 0x8110);
> -		phy_write(dev, 0x16, 0x201);
> -	} else if (dev && dev->interface == PHY_INTERFACE_MODE_RMII) {
> -		phy_write(dev, 0x1f, 0x8190);
> -		phy_write(dev, 0x16, 0x202);
> -	}
> -
> -	return 0;
> -}
> -
> -static void __init imx6ul_enet_phy_init(void)
> -{
> -	if (IS_BUILTIN(CONFIG_PHYLIB))
> -		phy_register_fixup_for_uid(PHY_ID_KSZ8081, MICREL_PHY_ID_MASK,
> -					   ksz8081_phy_fixup);
> -}
> -
>  static inline void imx6ul_enet_init(void)
>  {
>  	imx6ul_enet_clk_init();
> -	imx6ul_enet_phy_init();
>  }
>  
>  static void __init imx6ul_init_machine(void)
> 


-- 
Sébastien Szymanski, Armadeus Systems
Software engineer

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup
  2020-12-09 12:20 [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup Oleksij Rempel
  2020-12-09 14:32 ` Fabio Estevam
  2020-12-10 10:15 ` Sébastien Szymanski
@ 2021-01-07  3:19 ` Shawn Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2021-01-07  3:19 UTC (permalink / raw)
  To: Oleksij Rempel
  Cc: Sascha Hauer, Andrew Lunn, Florian Fainelli, Heiner Kallweit,
	kernel, netdev, linux-arm-kernel, linux-kernel, linux-imx,
	Fabio Estevam, David Jander, Russell King, Philippe Schenker

On Wed, Dec 09, 2020 at 01:20:51PM +0100, Oleksij Rempel wrote:
> Remove board specific PHY fixup introduced by commit:
> 
> | 709bc0657fe6f9f5 ("ARM: imx6ul: add fec MAC refrence clock and phy fixup init")
> 
> This fixup addresses boards with a specific configuration: a KSZ8081RNA
> PHY with attached clock source to XI (Pin 8) of the PHY equal to 50MHz.
> 
> For the KSZ8081RND PHY, the meaning of the reg 0x1F bit 7 is different
> (compared to the KSZ8081RNA). A set bit means:
> 
> - KSZ8081RNA: clock input to XI (Pin 8) is 50MHz for RMII
> - KSZ8081RND: clock input to XI (Pin 8) is 25MHz for RMII
> 
> In other configurations, for example a KSZ8081RND PHY or a KSZ8081RNA
> with 25Mhz clock source, the PHY will glitch and stay in not recoverable
> state.
> 
> It is not possible to detect the clock source frequency of the PHY. And
> it is not possible to automatically detect KSZ8081 PHY variant - both
> have same PHY ID. It is not possible to overwrite the fixup
> configuration by providing proper device tree description. The only way
> is to remove this fixup.
> 
> If this patch breaks network functionality on your board, fix it by
> adding PHY node with following properties:
> 
> 	ethernet-phy@x {
> 		...
> 		micrel,led-mode = <1>;
> 		clocks = <&clks IMX6UL_CLK_ENET_REF>;
> 		clock-names = "rmii-ref";
> 		...
> 	};
> 
> The board which was referred in the initial patch is already fixed.
> See: arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
> 
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>

Applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-07  3:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-09 12:20 [PATCH v1] ARM: imx: mach-imx6ul: remove 14x14 EVK specific PHY fixup Oleksij Rempel
2020-12-09 14:32 ` Fabio Estevam
2020-12-10 10:15 ` Sébastien Szymanski
2021-01-07  3:19 ` Shawn Guo

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).