[PATCH 1/5] net: ravb: Support multiple clocks

Ramon Fried rfried.dev at gmail.com
Thu Dec 9 01:24:22 CET 2021


On Mon, Dec 6, 2021 at 6:29 PM Adam Ford <aford173 at gmail.com> wrote:
>
> The RZ/G2 series uses an external clock as a reference to the AVB.
> If this clock is controlled by an external programmable clock,
> it must be requested by the consumer or it will not turn on.
> In order to do this, update the driver to use bulk enable and
> disable functions to enable clocks for boards with multiple clocks.
>
> Signed-off-by: Adam Ford <aford173 at gmail.com>
> ---
>  drivers/net/ravb.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
> index 6953b7286a..d756dddb02 100644
> --- a/drivers/net/ravb.c
> +++ b/drivers/net/ravb.c
> @@ -129,7 +129,7 @@ struct ravb_priv {
>         struct phy_device       *phydev;
>         struct mii_dev          *bus;
>         void __iomem            *iobase;
> -       struct clk              clk;
> +       struct clk_bulk         clks;
>         struct gpio_desc        reset_gpio;
>  };
>
> @@ -485,7 +485,7 @@ static int ravb_probe(struct udevice *dev)
>         iobase = map_physmem(pdata->iobase, 0x1000, MAP_NOCACHE);
>         eth->iobase = iobase;
>
> -       ret = clk_get_by_index(dev, 0, &eth->clk);
> +       ret =  clk_get_bulk(dev, &eth->clks);
>         if (ret < 0)
>                 goto err_mdio_alloc;
>
> @@ -518,7 +518,7 @@ static int ravb_probe(struct udevice *dev)
>         eth->bus = miiphy_get_dev_by_name(dev->name);
>
>         /* Bring up PHY */
> -       ret = clk_enable(&eth->clk);
> +       ret = clk_enable_bulk(&eth->clks);
>         if (ret)
>                 goto err_mdio_register;
>
> @@ -533,7 +533,7 @@ static int ravb_probe(struct udevice *dev)
>         return 0;
>
>  err_mdio_reset:
> -       clk_disable(&eth->clk);
> +       clk_release_bulk(&eth->clks);
>  err_mdio_register:
>         mdio_free(mdiodev);
>  err_mdio_alloc:
> @@ -545,7 +545,7 @@ static int ravb_remove(struct udevice *dev)
>  {
>         struct ravb_priv *eth = dev_get_priv(dev);
>
> -       clk_disable(&eth->clk);
> +       clk_release_bulk(&eth->clks);
>
>         free(eth->phydev);
>         mdio_unregister(eth->bus);
> --
> 2.32.0
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list