Messages in this thread | | | From | Tomasz Figa <> | Subject | Re: [PATCH v2 1/5] phy: Add new Exynos USB PHY driver | Date | Mon, 28 Oct 2013 21:00:01 +0100 |
| |
Hi Kamil,
On Monday 28 of October 2013 14:52:19 Kamil Debski wrote: > Hi Kishon, > > Thank you for your review! I will answer your comments below. [snip] > > > + > > > + switch (drv->cfg->cpu) { > > > + case TYPE_EXYNOS4210: > > > > > + case TYPE_EXYNOS4212: > > Lets not add such cpu checks inside driver. > > Some SoC have a special register, which switches the OTG lines between > device and host modes. I understand that it might not be the prettiest > code. I see this as a good compromise between having a single huge > driver for all Exynos SoCs and having a multiple drivers for each SoC > version. PHY IPs in these chips very are similar but have to be handled > differently. Any other ideas to solve this issue?
Maybe adding a flag in drv->cfg called, for example, .has_mode_switch could solve this problem without having to check the SoC type explicitly?
[snip] > > > +#ifdef CONFIG_PHY_EXYNOS4210_USB > > > > Do we really need this? > > No we don't. The driver can always support all Exynos SoC versions. > These config options were added for flexibility. > > > > +extern const struct uphy_config exynos4210_uphy_config; #endif > > > + > > > +#ifdef CONFIG_PHY_EXYNOS4212_USB > > > > Same here. > > > > > +extern const struct uphy_config exynos4212_uphy_config; #endif > > > + > > > +static const struct of_device_id exynos_uphy_of_match[] = { #ifdef > > > +CONFIG_PHY_EXYNOS4210_USB > > > > #if not needed here. > > If the #ifdef CONFIG_PHY_EXYNOS4210_USB is removed then yes. Otherwise > it is necessary - exynos4210_uphy_config may be undefined.
I believe this and other ifdefs below are needed, otherwise, with support for one of the SoCs disabled, the driver could still bind to its compatible value.
Best regards, Tomasz
| |