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 <[email protected]>
Signed-off-by: Heiko Thiery <[email protected]>
---
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@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 <[email protected]>
};
};
};
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();