Hi,
On Thu, Mar 10, 2016 at 10:42:42AM +0100, Petr Kulhavy wrote:
>
>
> On 09.03.2016 12:53, Sergei Shtylyov wrote:
> >Hello.
> >
> >On 3/9/2016 12:25 PM, Petr Kulhavy wrote:
> >
> >>This adds DT support for TI DA8xx/OMAP-L1x/AM17xx/AM18xx MUSB driver
> >>
> >>Signed-off-by: Petr Kulhavy <[email protected]>
> >>Tested-by: Petr Kulhavy <[email protected]>
> >[...]
> >
> >>diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
> >>index b03d3b8..aabd33a 100644
> >>--- a/drivers/usb/musb/da8xx.c
> >>+++ b/drivers/usb/musb/da8xx.c
> >[...]
> >>@@ -134,6 +139,55 @@ static inline void phy_off(void)
> >> __raw_writel(cfgchip2, CFGCHIP2);
> >> }
> >>
> >>+static inline int get_phy_refclk_cfg(struct device_node *np)
> >>+{
> >>+ u32 freq;
> >>+
> >>+ if (of_property_read_u32(np, "ti,usb2-phy-refclock-hz", &freq))
> >>+ return -EINVAL;
> >
> > Shouldn't the frequency be retrieved thru the clk API, like we
> >do it for the power, BTW?
> >
> Bin, what do you think about it? I prefer the pragmatic approach
> leaving it as a parameter ;-)
> Then the clock selection would be needed as well, etc. I'd keep it simple.
Sorry for my late response, but I am okay with either way.
Regards,
-Bin.
>
> >>+
> >>+ switch (freq) {
> >>+ case 12000000:
> >>+ return CFGCHIP2_REFFREQ_12MHZ;
> >>+ case 13000000:
> >>+ return CFGCHIP2_REFFREQ_13MHZ;
> >>+ case 19200000:
> >>+ return CFGCHIP2_REFFREQ_19_2MHZ;
> >>+ case 20000000:
> >>+ return CFGCHIP2_REFFREQ_20MHZ;
> >>+ case 24000000:
> >>+ return CFGCHIP2_REFFREQ_24MHZ;
> >>+ case 26000000:
> >>+ return CFGCHIP2_REFFREQ_26MHZ;
> >>+ case 38400000:
> >>+ return CFGCHIP2_REFFREQ_38_4MHZ;
> >>+ case 40000000:
> >>+ return CFGCHIP2_REFFREQ_40MHZ;
> >>+ case 48000000:
> >>+ return CFGCHIP2_REFFREQ_48MHZ;
> >>+ default:
> >>+ return -EINVAL;
> >>+ }
> >>+}
> >>+
> >>+static inline u8 get_vbus_power(struct device *dev)
> >>+{
> >>+ struct regulator *vbus_supply;
> >>+ int current_uA;
> >>+
> >>+ vbus_supply = regulator_get(dev, "vbus");
> >>+ if (IS_ERR(vbus_supply))
> >>+ return 255;
> >>+
> >>+ current_uA = regulator_get_current_limit(vbus_supply);
> >>+ regulator_put(vbus_supply);
> >>+
> >>+ if (current_uA <= 0 || current_uA > 510000)
> >>+ return 255;
> >>+
> >>+ return current_uA / 1000;
> >>+}
> >
> > Wait, the platform data expects that in 2 mA units, you forgot
> >to divide by 2!
> >
> Argh, yes indeed!
>
> Regards
> Petr
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html