Hi,
On Wed, Mar 27, 2013 at 02:39:08PM +0100, Tomasz Figa wrote:
> On Wednesday 27 of March 2013 15:31:49 Felipe Balbi wrote:
> > Hi,
> >
> > On Wed, Mar 27, 2013 at 02:26:08PM +0100, Tomasz Figa wrote:
> > > Hi Felipe,
> > >
> > > On Wednesday 27 of March 2013 15:19:58 Felipe Balbi wrote:
> > > > Hi,
> > > >
> > > > On Tue, Mar 26, 2013 at 03:53:12PM +0100, Tomasz Figa wrote:
> > > > > @@ -307,6 +310,7 @@ static int samsung_usb3phy_remove(struct
> > > > > platform_device *pdev)>
> > > > >
> > > > > static struct samsung_usbphy_drvdata usb3phy_exynos5 = {
> > > > >
> > > > > .cpu_type = TYPE_EXYNOS5250,
> > > > > .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
> > > > >
> > > > > + .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
> > > >
> > > > why isn't this just a clk_get_rate() ???
> > >
> > > As the name suggests, this is a function to get appropriate CLKSEL value
> > > to
> > > write into PHYCLK register for reference clock rate on particular platform
> > > (clk_get_rate is used inside to get the rate).
> >
> > alright, then you don't need this function pointer at all, look at both
> >
> > your rate_to_clksel functions (quoted below):
> > | +int samsung_usbphy_rate_to_clksel_64xx(struct samsung_usbphy *sphy,
> > | + unsigned long
> > | rate)
> > | +{
> > | + unsigned int clksel;
> > | +
> > | + switch (rate) {
> > | + case 12 * MHZ:
> > | + clksel = PHYCLK_CLKSEL_12M;
>
> Please note the PHYCLK_CLKSEL_ prefix here...
>
> > | + break;
> > | + case 24 * MHZ:
> > | + clksel = PHYCLK_CLKSEL_24M;
> > | + break;
> > | + case 48 * MHZ:
> > | + clksel = PHYCLK_CLKSEL_48M;
> > | + break;
> > | + default:
> > | + dev_err(sphy->dev,
> > | + "Invalid reference clock frequency: %lu\n", rate);
> > | + return -EINVAL;
> > | + }
> > | +
> > | + return clksel;
> > | +}
> > | +EXPORT_SYMBOL_GPL(samsung_usbphy_rate_to_clksel_64xx);
> > | +
> > | +int samsung_usbphy_rate_to_clksel_4x12(struct samsung_usbphy *sphy,
> > | + unsigned long
> > | rate)
> > | +{
> > | + unsigned int clksel;
> > | +
> > | + switch (rate) {
> > | + case 9600 * KHZ:
> > | + clksel = FSEL_CLKSEL_9600K;
> > | + break;
> > | + case 10 * MHZ:
> > | + clksel = FSEL_CLKSEL_10M;
> > | + break;
> > | + case 12 * MHZ:
> > | + clksel = FSEL_CLKSEL_12M;
>
> ..and then FSEL_CLKSEL_ here. They have different values. (Their names are a
> bit unfortunate, though...)indeed, my eyes failed there. So I agree with the patch :-) sorry for the noise. -- balbi
signature.asc
Description: Digital signature
