Hi Andy, Andy Fleming wrote: > diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c > index b4b5b4a..b053370 100644 > --- a/arch/powerpc/sysdev/fsl_soc.c > +++ b/arch/powerpc/sysdev/fsl_soc.c > @@ -211,6 +211,36 @@ static int __init gfar_set_flags(struct > return device_flags; > } > > +/* Return the Linux interface mode type based on the > + * specification in the device-tree */ > +static int __init gfar_get_interface(struct device_node *np) > +{ > + const char *istr; > + int interface = 0; > + > + istr = get_property(np, "interface", NULL); > + > + if (istr == NULL) > + istr = "GMII"; > + > + if (!strcasecmp(istr, "GMII")) > + interface = PHY_INTERFACE_MODE_GMII; > + else if (!strcasecmp(istr, "MII")) > + interface = PHY_INTERFACE_MODE_MII; > + else if (!strcasecmp(istr, "RGMII")) > + interface = PHY_INTERFACE_MODE_RGMII; > + else if (!strcasecmp(istr, "SGMII")) > + interface = PHY_INTERFACE_MODE_SGMII; > + else if (!strcasecmp(istr, "TBI")) > + interface = PHY_INTERFACE_MODE_TBI; > + else if (!strcasecmp(istr, "RMII")) > + interface = PHY_INTERFACE_MODE_RMII; > + else if (!strcasecmp(istr, "RTBI")) > + interface = PHY_INTERFACE_MODE_RTBI; > + > + return interface; > +}
If you change the modes into an enum (as suggested by Kumar), you can make a nice static lookup table indexed by mode with a for loop here. Regards Ingo Oeser - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html