[PATCH] ARM: S3C64XX: Add USB clock source frequency as driver data to s3c-hsotg

Maurus Cuelenaere mcuelenaere at gmail.com
Tue May 4 07:12:36 EDT 2010


The upcoming SmartQ machines use a different base clock frequency
for the USB block, this patch allows passing it as platform data
to the driver.

Signed-off-by: Maurus Cuelenaere <mcuelenaere at gmail.com>
---
 arch/arm/plat-samsung/include/plat/udc-hs.h |    8 ++++++++
 drivers/usb/gadget/s3c-hsotg.c              |    1 +
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-samsung/include/plat/udc-hs.h b/arch/arm/plat-samsung/include/plat/udc-hs.h
index a22a4f2..2905344 100644
--- a/arch/arm/plat-samsung/include/plat/udc-hs.h
+++ b/arch/arm/plat-samsung/include/plat/udc-hs.h
@@ -18,12 +18,20 @@ enum s3c_hsotg_dmamode {
 	S3C_HSOTG_DMA_DRV,	/* DMA is chosen by driver */
 };
 
+enum s3c_hsotg_clkfreq {
+	S3C_HSOTG_CLKFREQ_48MHZ = 0,
+	S3C_HSOTG_CLKFREQ_12MHZ = 2,
+	S3C_HSOTG_CLKFREQ_24MHZ = 3,
+};
+
 /**
  * struct s3c_hsotg_plat - platform data for high-speed otg/udc
  * @dma: Whether to use DMA or not.
  * @is_osc: The clock source is an oscillator, not a crystal
+ * @clk_sel: Frequency of the clock source
  */
 struct s3c_hsotg_plat {
 	enum s3c_hsotg_dmamode	dma;
 	unsigned int		is_osc : 1;
+	enum s3c_hsotg_clkfreq	clk_sel;
 };
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 1f73b48..600b56d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -2705,6 +2705,7 @@ static void s3c_hsotg_otgreset(struct s3c_hsotg *hsotg)
 	mdelay(1);
 
 	osc = hsotg->plat->is_osc ? S3C_PHYCLK_EXT_OSC : 0;
+	osc |= hsotg->plat->clk_sel;
 
 	writel(osc | 0x10, S3C_PHYCLK);
 
-- 
1.7.1




More information about the linux-arm-kernel mailing list