[PATCH 01/11] USB: s3c_hsotg: Add support for external USB clock

Marek Szyprowski m.szyprowski at samsung.com
Fri Jun 11 05:35:20 EDT 2010


Hello,

On Friday, June 11, 2010 10:21 AM Ben Dooks wrote:

> From: Maurus Cuelenaere <mcuelenaere at gmail.com>
> 
> The PLL that drives the USB clock supports 3 input clocks: 12, 24 and 48Mhz.
> This patch adds support to the USB driver for setting the correct register
> bit
> according to the given clock.
> 
> This depends on the following patch:
> [PATCH] ARM: S3C64XX: Add USB external clock definition
> 
> Signed-off-by: Maurus Cuelenaere <mcuelenaere at gmail.com>
> Signed-off-by: Ben Dooks <ben-linux at fluff.org>
> ---
>  drivers/usb/gadget/s3c-hsotg.c |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-
> hsotg.c
> index 26193ec..6a303ce 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -23,6 +23,7 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/slab.h>
> +#include <linux/clk.h>
> 
>  #include <linux/usb/ch9.h>
>  #include <linux/usb/gadget.h>
> @@ -2753,6 +2754,7 @@ static void __devinit s3c_hsotg_initep(struct
> s3c_hsotg *hsotg,
>   */
>  static void s3c_hsotg_otgreset(struct s3c_hsotg *hsotg)
>  {
> +	struct clk *xusbxti;
>  	u32 osc;
> 
>  	writel(0, S3C_PHYPWR);
> @@ -2760,6 +2762,23 @@ static void s3c_hsotg_otgreset(struct s3c_hsotg
> *hsotg)
> 
>  	osc = hsotg->plat->is_osc ? S3C_PHYCLK_EXT_OSC : 0;
> 
> +	xusbxti = clk_get(hsotg->dev, "xusbxti");
> +	if (xusbxti && !IS_ERR(xusbxti)) {
> +		switch (clk_get_rate(xusbxti)) {
> +		case 12000000:
> +		    osc |= S3C_PHYCLK_CLKSEL_12M;
> +		    break;
> +		case 24000000:
> +		    osc |= S3C_PHYCLK_CLKSEL_24M;
> +		    break;
> +		default:
> +		case 48000000:
> +		    /* default reference clock */
> +		    break;

One quick style issue: there is some tabs-vs-spaces mess in the above
code.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center






More information about the linux-arm-kernel mailing list