[PATCH v2.6.26] powerpc: Add 8568 PHY workaround to board code
Anton Vorontsov
cbouatmailru at gmail.com
Sat Apr 19 08:59:57 EST 2008
On Fri, Apr 18, 2008 at 05:35:49PM -0500, Andy Fleming wrote:
> The 8568 MDS needs some configuration changes to the PHY in order to work
> properly. These are done in the firmware, normally, but Linux shouldn't
> need to rely on the firmware running such things (someone could disable
> the PHY support in the firmware to save space, for instance).
>
> Signed-off-by: Andy Fleming <afleming at freescale.com>
> ---
>
> Jeff, copying you so you can see what code uses the board fixup patch. Also,
> Kumar, note that this patch is utterly useless without the patch sent to netdev:
> Add support for board-level PHY fixups.
>
> arch/powerpc/platforms/85xx/mpc85xx_mds.c | 114 +++++++++++++++++++++++++++++
> 1 files changed, 114 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
> index 25f8bc7..b1bf06d 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
[...]
Hi Andy,
Just two fluffy comments...
> +static int __init board_fixups(void)
> +{
> + char phy_id[BUS_ID_SIZE];
> + struct device_node *mdio;
> + struct resource res;
> +
> + /* Register a workaround to fixup the clock source */
> + mdio = of_find_node_by_name(NULL, "mdio");
MPC8568E-MDS can use either one of two mdio buses, so I'd suggest to
do fixups for both via of_find_compatible_node(), or
for_each_compatible_node().
> + of_address_to_resource(mdio, 0, &res);
> + snprintf(phy_id, BUS_ID_SIZE, "%x:%02x", res.start, 1);
> +
> + phy_register_fixup_for_id(phy_id, mpc8568_fixup_125_clock);
> + phy_register_fixup_for_id(phy_id, mpc8568_mds_phy_fixups);
> +
> + /* Register a workaround for errata */
> + snprintf(phy_id, BUS_ID_SIZE, "%x:%02x", res.start, 7);
> + phy_register_fixup_for_id(phy_id, mpc8568_mds_phy_fixups);
of_node_put(mdio); is missing here, I think.
> + return 0;
> +}
> +arch_initcall(board_fixups);
--
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2
More information about the Linuxppc-dev
mailing list