[U-Boot] [PATCH V2] Allow PHY addresses on kirkwood egiga to be non continuous.
Mike Frysinger
vapier at gentoo.org
Thu Jun 24 18:37:42 CEST 2010
On Thursday, June 24, 2010 05:31:47 Tor Krill wrote:
> void reset_phy(void)
> {
> char *name = "egiga0";
> + u8 port_addr[] = CONFIG_PHY_ADDRS;
>
> if (miiphy_set_current_dev(name))
> return;
>
> /* reset the phy */
> - miiphy_reset(name, CONFIG_PHY_BASE_ADR);
> + miiphy_reset(name, port_addr[0]);
> }
hmm, this cant possibly be correct. how do you know which of the phys is to
be reset ? but i guess that's just a bug in the ARM tree you cant do much
about without fixing everyone.
> --- a/drivers/net/kirkwood_egiga.c
> +++ b/drivers/net/kirkwood_egiga.c
> @@ -629,6 +629,7 @@ int kirkwood_egiga_initialize(bd_t * bis)
> int devnum;
> char *s;
> u8 used_ports[MAX_KWGBE_DEVS] = CONFIG_KIRKWOOD_EGIGA_PORTS;
> + u8 port_addr[MAX_KWGBE_DEVS] = PHY_ADDRS;
>
> for (devnum = 0; devnum < MAX_KWGBE_DEVS; devnum++) {
> /*skip if port is configured not to use */
> @@ -712,7 +713,7 @@ int kirkwood_egiga_initialize(bd_t * bis)
> miiphy_register(dev->name, smi_reg_read, smi_reg_write);
> /* Set phy address of the port */
> miiphy_write(dev->name, KIRKWOOD_PHY_ADR_REQUEST,
> - KIRKWOOD_PHY_ADR_REQUEST, PHY_BASE_ADR + devnum);
> + KIRKWOOD_PHY_ADR_REQUEST, port_addr[devnum]);
> #endif
> }
> return 0;
> --- a/drivers/net/kirkwood_egiga.h
> +++ b/drivers/net/kirkwood_egiga.h
> @@ -30,11 +30,11 @@
>
> #define MAX_KWGBE_DEVS 2 /*controller has two ports */
>
> -/* PHY_BASE_ADR is board specific and can be configured */
> -#if defined (CONFIG_PHY_BASE_ADR)
> -#define PHY_BASE_ADR CONFIG_PHY_BASE_ADR
> +/* PHY addresses is board specific and can be configured */
> +#if defined (CONFIG_PHY_ADDRS)
> +#define PHY_ADDRS CONFIG_PHY_ADDRS
> #else
> -#define PHY_BASE_ADR 0x08 /* default phy base addr */
> +#define PHY_ADDRS {0x08,0x09} /* default phy base addr */
> #endif
i dont know anything about the kirkwood_egiga, but cant you have more than one
instance on a board ? if so, it'd make more sense to change the phy addr
define stuff into an array argument that gets passed to the driver init func.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20100624/a3db61d2/attachment.pgp
More information about the U-Boot
mailing list