[PATCH v2] ARM: imx: imx8mn-*-evk: use DM settings for PHY configuration
Michael Walle
michael at walle.cc
Tue Feb 22 17:00:53 CET 2022
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 at walle.cc>
> Signed-off-by: Heiko Thiery <heiko.thiery at 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 = <ðphy0>;
> - phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
This ...
> fsl,magic-packet;
> status = "okay";
>
> @@ -64,6 +63,15 @@
> ethphy0: ethernet-phy at 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 at 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();
More information about the U-Boot
mailing list