From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
To: Tomasz Figa <t.figa-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Cc: balbi-l0cyMroinI0@public.gmane.org,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
p.paneri-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
gautam.vivek-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org
Subject: Re: [PATCH 3/6] usb: phy: samsung: Consolidate reference clock rate handling
Date: Wed, 27 Mar 2013 15:31:49 +0200 [thread overview]
Message-ID: <20130327133149.GI4626@arwen.pp.htv.fi> (raw)
In-Reply-To: <1418529.52pdDLWkRZ@amdc1227>
[-- Attachment #1: Type: text/plain, Size: 3267 bytes --]
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;
| + 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;
| + break;
| + case 19200 * KHZ:
| + clksel = FSEL_CLKSEL_19200K;
| + break;
| + case 20 * MHZ:
| + clksel = FSEL_CLKSEL_20M;
| + break;
| + case 24 * MHZ:
| + clksel = FSEL_CLKSEL_24M;
| + break;
| + case 50 * MHZ:
| + clksel = FSEL_CLKSEL_50M;
| + 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_4x12);
They both return the same thing and test the same thing. You clearly
don't need this function pointer. The only thing you need to be careful
is that different platforms will have different clock rates, but that
can just as easily be turned into a generic check.
I don't see the need for $SUBJECT.
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-03-27 13:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-26 14:53 [PATCH 0/6] Samsung USB PHY SoC support cleanup Tomasz Figa
2013-03-26 14:53 ` [PATCH 1/6] usb: phy: samsung: Select common driver part implicitly Tomasz Figa
2013-03-26 14:53 ` [PATCH 2/6] usb: phy: samsung: Use clk_get to get reference clock Tomasz Figa
[not found] ` <1364309595-16102-1-git-send-email-t.figa-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-03-26 14:53 ` [PATCH 3/6] usb: phy: samsung: Consolidate reference clock rate handling Tomasz Figa
2013-03-27 13:19 ` Felipe Balbi
2013-03-27 13:26 ` Tomasz Figa
2013-03-27 13:31 ` Felipe Balbi [this message]
[not found] ` <20130327133149.GI4626-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2013-03-27 13:39 ` Tomasz Figa
2013-03-27 13:43 ` Felipe Balbi
2013-03-26 14:53 ` [PATCH 4/6] usb: phy: samsung: Pass set_isolation callback through driver data Tomasz Figa
2013-03-26 14:53 ` [PATCH 5/6] usb: phy: samsung: Pass enable/disable callbacks " Tomasz Figa
2013-03-26 14:53 ` [PATCH 6/6] usb: phy: samsung: Add support for USB 2.0 PHY on Exynos 4x12 Tomasz Figa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130327133149.GI4626@arwen.pp.htv.fi \
--to=balbi-l0cymroini0@public.gmane.org \
--cc=gautam.vivek-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=p.paneri-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=t.figa-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.