[PATCH v2 03/22] sunxi: remove CONFIG_MACPWR
Samuel Holland
samuel at sholland.org
Sat Oct 21 06:35:43 CEST 2023
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.przywara at arm.com>
> Reviewed-by: Sam Edwards <CFSworks at 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;
More information about the U-Boot
mailing list