[PATCH 7/8] arm: kirkwood: Pogoplug-V4 : Add board implementation

Tony Dinh mibodhi at gmail.com
Sun Dec 19 00:28:49 CET 2021


Hi Marek,

On Sat, Dec 18, 2021 at 2:59 PM Marek Behún <marek.behun at nic.cz> wrote:
>
> > +#if defined(CONFIG_RESET_PHY_R)
> > +/* Configure and initialize PHY */
> > +void reset_phy(void)
> > +{
> > +     u16 reg;
> > +     int phyaddr;
> > +     char *name = "ethernet-controller at 72000";
> > +     char *eth0_path = "/ocp at f1000000/ethernet-controller at 72000";
> > +
> > +     if (miiphy_set_current_dev(name))
> > +             return;
> > +
> > +     phyaddr = fdt_get_phy_addr(eth0_path);
> > +     if (phyaddr < 0)
> > +             return;
> > +
> > +     /*
> > +      * Enable RGMII delay on Tx and Rx for CPU port
> > +      * Ref: sec 4.7.2 of chip datasheet
> > +      */
> > +     miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 2);
> > +     miiphy_read(name, phyaddr, MV88E1116_MAC_CTRL_REG, &reg);
> > +     reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
> > +     miiphy_write(name, phyaddr, MV88E1116_MAC_CTRL_REG, reg);
> > +     miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 0);
> > +
> > +     /* reset the phy */
> > +     miiphy_reset(name, phyaddr);
> > +
> > +     printf("88E1116 Initialized on %s\n", name);
> > +}
>
> This PHY has a driver in U-Boot, drivers/net/phy/marvell.c,
> structure M88E1118_driver.
>
> There the m88e1118_config() method already does one thing of what you
> are doing here: enabling rgmii delays. It also sets LED config, but
> does not reset the PHY. You can add call to phy_reset() there...

Thanks for the advice! That would be best.

Will look into this for another separate patch, to see if it is
possible to factor out similar code in other Kirkwood boards too.

Thanks,
Tony

>
> Marek


More information about the U-Boot mailing list