Hi Andre, On 9/28/23 16:54, Andre Przywara wrote: > The CONFIG_MACPWR Kconfig symbol is used to point to a GPIO that enables > the power for the Ethernet "MAC" (mostly PHY, really). > In the DT this is described with the phy-supply property in the MAC DT > node, pointing to a (GPIO controlled) regulator. Since we need Ethernet > only in U-Boot proper, and use a DM driver there, we should use the DT > instead of hardcoding this. > > Add code to the sun8i_emac and sunxi_emac drivers to check the DT for > that regulator and enable it, at probe time. Then drop the current code > from board.c, which was doing that job before. > This allows us to remove the MACPWR Kconfig definition and the respective > values from the defconfigs. > > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > Reviewed-by: Sam Edwards <cfswo...@gmail.com> > --- > arch/arm/mach-sunxi/Kconfig | 7 ------- > board/sunxi/board.c | 12 +----------- > configs/Bananapi_M2_Ultra_defconfig | 1 - > configs/Bananapi_defconfig | 1 - > configs/Bananapro_defconfig | 1 - > configs/Lamobo_R1_defconfig | 1 - > configs/Mele_A1000_defconfig | 1 - > configs/Orangepi_defconfig | 1 - > configs/Orangepi_mini_defconfig | 1 - > configs/bananapi_m1_plus_defconfig | 1 - > configs/bananapi_m2_plus_h3_defconfig | 1 - > configs/bananapi_m2_plus_h5_defconfig | 1 - > configs/i12-tvbox_defconfig | 1 - > configs/jesurun_q5_defconfig | 1 - > configs/mixtile_loftq_defconfig | 1 - > configs/nanopi_m1_plus_defconfig | 1 - > configs/nanopi_neo_plus2_defconfig | 1 - > configs/nanopi_r1s_h5_defconfig | 1 - > configs/orangepi_pc2_defconfig | 1 - > configs/orangepi_plus2e_defconfig | 1 - > configs/orangepi_plus_defconfig | 1 - > configs/orangepi_win_defconfig | 1 - > configs/pine_h64_defconfig | 1 - > configs/zeropi_defconfig | 1 - > drivers/net/sun8i_emac.c | 9 +++++++-- > 25 files changed, 8 insertions(+), 42 deletions(-) > > [...] > diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c > index 04c3274fbe1..7b60a60ad52 100644 > --- a/drivers/net/sun8i_emac.c > +++ b/drivers/net/sun8i_emac.c > @@ -29,6 +29,7 @@ > #include <net.h> > #include <reset.h> > #include <wait_bit.h> > +#include <power/regulator.h> > > #define MDIO_CMD_MII_BUSY BIT(0) > #define MDIO_CMD_MII_WRITE BIT(1) > @@ -167,9 +168,8 @@ struct emac_eth_dev { > struct clk ephy_clk; > struct reset_ctl tx_rst; > struct reset_ctl ephy_rst; > -#if CONFIG_IS_ENABLED(DM_GPIO) > struct gpio_desc reset_gpio; > -#endif
This is sort of an unrelated cleanup, and there are several more instances of this in the same file. Maybe split this to a separate patch? Regards, Samuel > + struct udevice *phy_reg; > }; > > > @@ -720,6 +720,9 @@ static int sun8i_emac_eth_probe(struct udevice *dev) > > sun8i_emac_set_syscon(sun8i_pdata, priv); > > + if (priv->phy_reg) > + regulator_set_enable(priv->phy_reg, true); > + > sun8i_mdio_init(dev->name, dev); > priv->bus = miiphy_get_dev_by_name(dev->name); > > @@ -829,6 +832,8 @@ static int sun8i_emac_eth_of_to_plat(struct udevice *dev) > > priv->sysctl_reg = (void *)syscon_base + priv->variant->syscon_offset; > > + device_get_supply_regulator(dev, "phy-supply", &priv->phy_reg); > + > pdata->phy_interface = -1; > priv->phyaddr = -1; > priv->use_internal_phy = false;