From 8f42a0f290dd9c1cf6f2d2a07856754a54defd8c Mon Sep 17 00:00:00 2001 From: Maurus Cuelenaere Date: Mon, 19 Jul 2010 09:40:50 +0100 Subject: [PATCH] --- yaml --- r: 208059 b: refs/heads/master c: e50bf385bfadeaacfb8af07b9b78dcfdef339981 h: refs/heads/master i: 208057: ec4a224cb7d24f80c4f468f10caff41f81a56646 208055: 2fbbd8b9044bd8cd99c66db646dda79e9629ced4 v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/s3c-hsotg.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1a9ef6c8f0a8..7cf3292c539b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a33e7136e9652374f7d54ded3cff8062d8e1e84f +refs/heads/master: e50bf385bfadeaacfb8af07b9b78dcfdef339981 diff --git a/trunk/drivers/usb/gadget/s3c-hsotg.c b/trunk/drivers/usb/gadget/s3c-hsotg.c index 825b6ca62941..a4e0b0fa0191 100644 --- a/trunk/drivers/usb/gadget/s3c-hsotg.c +++ b/trunk/drivers/usb/gadget/s3c-hsotg.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -2798,6 +2799,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); @@ -2805,6 +2807,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 12*MHZ: + osc |= S3C_PHYCLK_CLKSEL_12M; + break; + case 24*MHZ: + osc |= S3C_PHYCLK_CLKSEL_24M; + break; + default: + case 48*MHZ: + /* default reference clock */ + break; + } + clk_put(xusbxti); + } + writel(osc | 0x10, S3C_PHYCLK); /* issue a full set of resets to the otg and core */