All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration
@ 2022-02-22 15:19 Heiko Thiery
  2022-02-22 16:00 ` Michael Walle
  0 siblings, 1 reply; 4+ messages in thread
From: Heiko Thiery @ 2022-02-22 15:19 UTC (permalink / raw)
  To: u-boot
  Cc: Stefano Babic, Michael Walle, Fabio Estevam,
	NXP i . MX U-Boot Team, Peng Fan, Frieder Schrempf, Marek Vasut,
	Heiko Thiery

With the correct settings described in the device-tree the PHY settings
in the board init are no longer required. The values are taken from the
linux device tree.

Suggested-by: Michael Walle <michael@walle.cc>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
v2:
 - remove phy-reset-gpios node (thanks to Michael)
    When using DM_ETH_PHY the reset-gpios from the phy is used

 arch/arm/dts/imx8mn-evk.dtsi            | 10 +++++++++-
 board/freescale/imx8mn_evk/imx8mn_evk.c | 16 ----------------
 2 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/arch/arm/dts/imx8mn-evk.dtsi b/arch/arm/dts/imx8mn-evk.dtsi
index 416fadb22b..fd253f0042 100644
--- a/arch/arm/dts/imx8mn-evk.dtsi
+++ b/arch/arm/dts/imx8mn-evk.dtsi
@@ -53,7 +53,6 @@
 	pinctrl-0 = <&pinctrl_fec1>;
 	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy0>;
-	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
 	fsl,magic-packet;
 	status = "okay";
 
@@ -64,6 +63,15 @@
 		ethphy0: ethernet-phy@0 {
 			compatible = "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
+			reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <10000>;
+			qca,disable-smarteee;
+			vddio-supply = <&vddio>;
+
+			vddio: vddio-regulator {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
 		};
 	};
 };
diff --git a/board/freescale/imx8mn_evk/imx8mn_evk.c b/board/freescale/imx8mn_evk/imx8mn_evk.c
index b24342fd5c..e35d505aea 100644
--- a/board/freescale/imx8mn_evk/imx8mn_evk.c
+++ b/board/freescale/imx8mn_evk/imx8mn_evk.c
@@ -27,22 +27,6 @@ static void setup_fec(void)
 	clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
 }
 
-int board_phy_config(struct phy_device *phydev)
-{
-	/* enable rgmii rxc skew and phy mode select to RGMII copper */
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
-
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
-	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
-
-	if (phydev->drv->config)
-		phydev->drv->config(phydev);
-	return 0;
-}
-
 int board_init(void)
 {
 	setup_fec();
-- 
2.30.2


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

* Re: [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration
  2022-02-22 15:19 [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration Heiko Thiery
@ 2022-02-22 16:00 ` Michael Walle
  2022-02-22 18:13   ` Marek Vasut
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Walle @ 2022-02-22 16:00 UTC (permalink / raw)
  To: Heiko Thiery
  Cc: u-boot, Stefano Babic, Fabio Estevam, NXP i . MX U-Boot Team,
	Peng Fan, Frieder Schrempf, Marek Vasut

Am 2022-02-22 16:19, schrieb Heiko Thiery:
> With the correct settings described in the device-tree the PHY settings
> in the board init are no longer required. The values are taken from the
> linux device tree.
> 
> Suggested-by: Michael Walle <michael@walle.cc>
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
> v2:
>  - remove phy-reset-gpios node (thanks to Michael)
>     When using DM_ETH_PHY the reset-gpios from the phy is used
> 
>  arch/arm/dts/imx8mn-evk.dtsi            | 10 +++++++++-
>  board/freescale/imx8mn_evk/imx8mn_evk.c | 16 ----------------
>  2 files changed, 9 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/dts/imx8mn-evk.dtsi 
> b/arch/arm/dts/imx8mn-evk.dtsi
> index 416fadb22b..fd253f0042 100644
> --- a/arch/arm/dts/imx8mn-evk.dtsi
> +++ b/arch/arm/dts/imx8mn-evk.dtsi
> @@ -53,7 +53,6 @@
>  	pinctrl-0 = <&pinctrl_fec1>;
>  	phy-mode = "rgmii-id";
>  	phy-handle = <&ethphy0>;
> -	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;

This ...

>  	fsl,magic-packet;
>  	status = "okay";
> 
> @@ -64,6 +63,15 @@
>  		ethphy0: ethernet-phy@0 {
>  			compatible = "ethernet-phy-ieee802.3-c22";
>  			reg = <0>;
> +			reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
> +			reset-assert-us = <10000>;
> +			qca,disable-smarteee;
.. and these three lines should probably be a separate patch.


> +			vddio-supply = <&vddio>;
> +
> +			vddio: vddio-regulator {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};

This looks good. The rgmii pad delay is already handled by the
phy-mode.

Reviewed-by: Michael Walle <michael@walle.cc>

>  		};
>  	};
>  };
> diff --git a/board/freescale/imx8mn_evk/imx8mn_evk.c
> b/board/freescale/imx8mn_evk/imx8mn_evk.c
> index b24342fd5c..e35d505aea 100644
> --- a/board/freescale/imx8mn_evk/imx8mn_evk.c
> +++ b/board/freescale/imx8mn_evk/imx8mn_evk.c
> @@ -27,22 +27,6 @@ static void setup_fec(void)
>  	clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
>  }
> 
> -int board_phy_config(struct phy_device *phydev)
> -{
> -	/* enable rgmii rxc skew and phy mode select to RGMII copper */
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> -
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> -	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> -
> -	if (phydev->drv->config)
> -		phydev->drv->config(phydev);
> -	return 0;
> -}
> -
>  int board_init(void)
>  {
>  	setup_fec();

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

* Re: [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration
  2022-02-22 16:00 ` Michael Walle
@ 2022-02-22 18:13   ` Marek Vasut
  2022-02-23  7:29     ` Heiko Thiery
  0 siblings, 1 reply; 4+ messages in thread
From: Marek Vasut @ 2022-02-22 18:13 UTC (permalink / raw)
  To: Michael Walle, Heiko Thiery
  Cc: u-boot, Stefano Babic, Fabio Estevam, NXP i . MX U-Boot Team,
	Peng Fan, Frieder Schrempf

On 2/22/22 17:00, Michael Walle wrote:
> Am 2022-02-22 16:19, schrieb Heiko Thiery:
>> With the correct settings described in the device-tree the PHY settings
>> in the board init are no longer required. The values are taken from the
>> linux device tree.
>>
>> Suggested-by: Michael Walle <michael@walle.cc>
>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
>> ---
>> v2:
>>  - remove phy-reset-gpios node (thanks to Michael)
>>     When using DM_ETH_PHY the reset-gpios from the phy is used
>>
>>  arch/arm/dts/imx8mn-evk.dtsi            | 10 +++++++++-
>>  board/freescale/imx8mn_evk/imx8mn_evk.c | 16 ----------------
>>  2 files changed, 9 insertions(+), 17 deletions(-)

It seems someone was faster with this patch after all, thanks.

>> diff --git a/arch/arm/dts/imx8mn-evk.dtsi b/arch/arm/dts/imx8mn-evk.dtsi
>> index 416fadb22b..fd253f0042 100644
>> --- a/arch/arm/dts/imx8mn-evk.dtsi
>> +++ b/arch/arm/dts/imx8mn-evk.dtsi
>> @@ -53,7 +53,6 @@
>>      pinctrl-0 = <&pinctrl_fec1>;
>>      phy-mode = "rgmii-id";
>>      phy-handle = <&ethphy0>;
>> -    phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
> 
> This ...

I'm afraid the phy reset in the phy node won't really end up toggling 
the PHY reset GPIO, would it ?

[...]

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

* Re: [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration
  2022-02-22 18:13   ` Marek Vasut
@ 2022-02-23  7:29     ` Heiko Thiery
  0 siblings, 0 replies; 4+ messages in thread
From: Heiko Thiery @ 2022-02-23  7:29 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Michael Walle, u-boot, Stefano Babic, Fabio Estevam,
	NXP i . MX U-Boot Team, Peng Fan, Frieder Schrempf

Hi Marek,

Am Di., 22. Feb. 2022 um 19:13 Uhr schrieb Marek Vasut <marex@denx.de>:
>
> On 2/22/22 17:00, Michael Walle wrote:
> > Am 2022-02-22 16:19, schrieb Heiko Thiery:
> >> With the correct settings described in the device-tree the PHY settings
> >> in the board init are no longer required. The values are taken from the
> >> linux device tree.
> >>
> >> Suggested-by: Michael Walle <michael@walle.cc>
> >> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> >> ---
> >> v2:
> >>  - remove phy-reset-gpios node (thanks to Michael)
> >>     When using DM_ETH_PHY the reset-gpios from the phy is used
> >>
> >>  arch/arm/dts/imx8mn-evk.dtsi            | 10 +++++++++-
> >>  board/freescale/imx8mn_evk/imx8mn_evk.c | 16 ----------------
> >>  2 files changed, 9 insertions(+), 17 deletions(-)
>
> It seems someone was faster with this patch after all, thanks.
>
> >> diff --git a/arch/arm/dts/imx8mn-evk.dtsi b/arch/arm/dts/imx8mn-evk.dtsi
> >> index 416fadb22b..fd253f0042 100644
> >> --- a/arch/arm/dts/imx8mn-evk.dtsi
> >> +++ b/arch/arm/dts/imx8mn-evk.dtsi
> >> @@ -53,7 +53,6 @@
> >>      pinctrl-0 = <&pinctrl_fec1>;
> >>      phy-mode = "rgmii-id";
> >>      phy-handle = <&ethphy0>;
> >> -    phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
> >
> > This ...
>
> I'm afraid the phy reset in the phy node won't really end up toggling
> the PHY reset GPIO, would it ?

I think you're right. The "new" reset-gpios property is not supported
by the fec driver. I think this is also valid for the linux driver if
I'm not wrong. But then some boards in linux also cannot do a phy
reset at initialization/probing. Is that right?

-- 
Heiko

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

end of thread, other threads:[~2022-02-23  7:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-22 15:19 [PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration Heiko Thiery
2022-02-22 16:00 ` Michael Walle
2022-02-22 18:13   ` Marek Vasut
2022-02-23  7:29     ` Heiko Thiery

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.