Re: [PATCH 5/5 v9] usb: musb: da8xx: Add DT support for the DA8xx driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <petr@xxxxxxxxx>
> >>Tested-by: Petr Kulhavy <petr@xxxxxxxxx>
> >[...]
> >
> >>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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux