linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Updates for S3C HSOTG driver
@ 2010-05-28  2:41 Kukjin Kim
  2010-05-28  2:41 ` [PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks Kukjin Kim
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Kukjin Kim @ 2010-05-28  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series adds the following updates for S3C HSTOG driver.
1. Adds HCLK clock for S3C HSOTG module.
2. Adds clk_xusbxti clock to the list of clocks to be registred in S5P.
3. Sets the clk_xusbsti clock rate on S5PV210 to 24Mhz.
4. Updates the s3c hsotg driver to use the HCLK OTG clock.

[PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks
[PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock.
[PATCH 3/4] ARM: S5P: Add clk_xusbxti clock to the list of clocks to be registered.
[PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks
  2010-05-28  2:41 [PATCH] Updates for S3C HSOTG driver Kukjin Kim
@ 2010-05-28  2:41 ` Kukjin Kim
  2010-05-28  2:41 ` [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock Kukjin Kim
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Kukjin Kim @ 2010-05-28  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

From: Thomas Abraham <thomas.ab@samsung.com>

Add the USB OTG HCLK clock to the list of clocks to be registered
during initialization.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/mach-s3c64xx/clock.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
index 7a4138b..fbd85a9 100644
--- a/arch/arm/mach-s3c64xx/clock.c
+++ b/arch/arm/mach-s3c64xx/clock.c
@@ -259,6 +259,12 @@ static struct clk init_clocks[] = {
 		.enable		= s3c64xx_hclk_ctrl,
 		.ctrlbit	= S3C_CLKCON_HCLK_HSMMC2,
 	}, {
+		.name		= "otg",
+		.id		= -1,
+		.parent		= &clk_h,
+		.enable		= s3c64xx_hclk_ctrl,
+		.ctrlbit	= S3C_CLKCON_HCLK_USB,
+	}, {
 		.name		= "timers",
 		.id		= -1,
 		.parent		= &clk_p,
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock.
  2010-05-28  2:41 [PATCH] Updates for S3C HSOTG driver Kukjin Kim
  2010-05-28  2:41 ` [PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks Kukjin Kim
@ 2010-05-28  2:41 ` Kukjin Kim
  2010-05-28  7:10   ` Ben Dooks
  2010-05-28  2:41 ` [PATCH 3/4] ARM: S5P: Add clk_xusbxti clock to the list of clocks to be registered Kukjin Kim
  2010-05-28  2:41 ` [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module Kukjin Kim
  3 siblings, 1 reply; 10+ messages in thread
From: Kukjin Kim @ 2010-05-28  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

From: Thomas Abraham <thomas.ab@samsung.com>

The input clock frequency for USB Phy is 24 Mhz on the S5PV210
platform. This patch initializes the clk_xusbxti clock rate to 24Mhz.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/mach-s5pv210/clock.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index 154bca4..4ef09d4 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -954,6 +954,8 @@ void __init_or_cpufreq s5pv210_setup_clocks(void)
 
 	printk(KERN_DEBUG "%s: registering clocks\n", __func__);
 
+	clk_xusbxti.rate = 24 * MHZ;
+
 	clkdiv0 = __raw_readl(S5P_CLK_DIV0);
 	clkdiv1 = __raw_readl(S5P_CLK_DIV1);
 
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/4] ARM: S5P: Add clk_xusbxti clock to the list of clocks to be registered.
  2010-05-28  2:41 [PATCH] Updates for S3C HSOTG driver Kukjin Kim
  2010-05-28  2:41 ` [PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks Kukjin Kim
  2010-05-28  2:41 ` [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock Kukjin Kim
@ 2010-05-28  2:41 ` Kukjin Kim
  2010-05-28  2:41 ` [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module Kukjin Kim
  3 siblings, 0 replies; 10+ messages in thread
From: Kukjin Kim @ 2010-05-28  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

From: Thomas Abraham <thomas.ab@samsung.com>

The clk_xusbxti clock is added to the list of clocks to be
registred during boot time clock registration.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/plat-s5p/clock.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-s5p/clock.c b/arch/arm/plat-s5p/clock.c
index 24a931f..b5e2552 100644
--- a/arch/arm/plat-s5p/clock.c
+++ b/arch/arm/plat-s5p/clock.c
@@ -148,6 +148,7 @@ static struct clk *s5p_clks[] __initdata = {
 	&clk_fout_vpll,
 	&clk_arm,
 	&clk_vpll,
+	&clk_xusbxti,
 };
 
 void __init s5p_register_clocks(unsigned long xtal_freq)
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.
  2010-05-28  2:41 [PATCH] Updates for S3C HSOTG driver Kukjin Kim
                   ` (2 preceding siblings ...)
  2010-05-28  2:41 ` [PATCH 3/4] ARM: S5P: Add clk_xusbxti clock to the list of clocks to be registered Kukjin Kim
@ 2010-05-28  2:41 ` Kukjin Kim
  2010-05-28  3:58   ` Ben Dooks
  2010-05-28 10:22   ` Ben Dooks
  3 siblings, 2 replies; 10+ messages in thread
From: Kukjin Kim @ 2010-05-28  2:41 UTC (permalink / raw)
  To: linux-arm-kernel

From: Thomas Abraham <thomas.ab@samsung.com>

This patch modifies the following in S3C hsotg driver.

1. Gets a reference to the USB OTG hclk clock and enables it. This is
   required for plaforms on which the USB OTG hclk is disabled during
   the boot time clock intialization.

2. Add necessary clock clean up in case of error during initialization
   failure or during module unload.

3. Add a new field 'clk_otg' in 'struct s3c_hsotg' to maintain a
   reference to the USB OTG hclk clock.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
 drivers/usb/gadget/s3c-hsotg.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 81c47d2..526d081 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -130,6 +130,7 @@ struct s3c_hsotg_ep {
  * @dev: The parent device supplied to the probe function
  * @driver: USB gadget driver
  * @plat: The platform specific configuration data.
+ * @clk_otg: The hclk for otg module.
  * @regs: The memory area mapped for accessing registers.
  * @regs_res: The resource that was allocated when claiming register space.
  * @irq: The IRQ number we are using
@@ -147,6 +148,7 @@ struct s3c_hsotg {
 	struct device		 *dev;
 	struct usb_gadget_driver *driver;
 	struct s3c_hsotg_plat	 *plat;
+	struct clk		 *clk_otg;
 
 	void __iomem		*regs;
 	struct resource		*regs_res;
@@ -3269,6 +3271,14 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
 		goto err_regs_res;
 	}
 
+	hsotg->clk_otg = clk_get(&pdev->dev, "otg");
+	if (IS_ERR(hsotg->clk_otg)) {
+		dev_err(dev, "failed to find usb otg clock source\n");
+		ret = -ENODEV;
+		goto err_noclk;
+	}
+	clk_enable(hsotg->clk_otg);
+
 	ret = platform_get_irq(pdev, 0);
 	if (ret < 0) {
 		dev_err(dev, "cannot find IRQ\n");
@@ -3330,6 +3340,10 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
 	return 0;
 
 err_regs:
+	clk_disable(hsotg->clk_otg);
+	clk_put(hsotg->clk_otg);
+
+err_noclk:
 	iounmap(hsotg->regs);
 
 err_regs_res:
@@ -3352,6 +3366,9 @@ static int __devexit s3c_hsotg_remove(struct platform_device *pdev)
 	free_irq(hsotg->irq, hsotg);
 	iounmap(hsotg->regs);
 
+	clk_disable(hsotg->clk_otg);
+	clk_put(hsotg->clk_otg);
+
 	release_resource(hsotg->regs_res);
 	kfree(hsotg->regs_res);
 
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.
  2010-05-28  2:41 ` [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module Kukjin Kim
@ 2010-05-28  3:58   ` Ben Dooks
  2010-05-28 10:22   ` Ben Dooks
  1 sibling, 0 replies; 10+ messages in thread
From: Ben Dooks @ 2010-05-28  3:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, May 28, 2010 at 11:41:17AM +0900, Kukjin Kim wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> 
> This patch modifies the following in S3C hsotg driver.
> 
> 1. Gets a reference to the USB OTG hclk clock and enables it. This is
>    required for plaforms on which the USB OTG hclk is disabled during
>    the boot time clock intialization.
> 
> 2. Add necessary clock clean up in case of error during initialization
>    failure or during module unload.
> 
> 3. Add a new field 'clk_otg' in 'struct s3c_hsotg' to maintain a
>    reference to the USB OTG hclk clock.

ok, please note that the recent update sent from Marus to set the
PHY clock rate already gets the clock. we should make sure that the
code that does that uses this new clock from the hsotg info.
 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> ---
>  drivers/usb/gadget/s3c-hsotg.c |   17 +++++++++++++++++
>  1 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> index 81c47d2..526d081 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -130,6 +130,7 @@ struct s3c_hsotg_ep {
>   * @dev: The parent device supplied to the probe function
>   * @driver: USB gadget driver
>   * @plat: The platform specific configuration data.
> + * @clk_otg: The hclk for otg module.
>   * @regs: The memory area mapped for accessing registers.
>   * @regs_res: The resource that was allocated when claiming register space.
>   * @irq: The IRQ number we are using
> @@ -147,6 +148,7 @@ struct s3c_hsotg {
>  	struct device		 *dev;
>  	struct usb_gadget_driver *driver;
>  	struct s3c_hsotg_plat	 *plat;
> +	struct clk		 *clk_otg;
>  
>  	void __iomem		*regs;
>  	struct resource		*regs_res;
> @@ -3269,6 +3271,14 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>  		goto err_regs_res;
>  	}
>  
> +	hsotg->clk_otg = clk_get(&pdev->dev, "otg");
> +	if (IS_ERR(hsotg->clk_otg)) {
> +		dev_err(dev, "failed to find usb otg clock source\n");
> +		ret = -ENODEV;
> +		goto err_noclk;
> +	}
> +	clk_enable(hsotg->clk_otg);
> +
>  	ret = platform_get_irq(pdev, 0);
>  	if (ret < 0) {
>  		dev_err(dev, "cannot find IRQ\n");
> @@ -3330,6 +3340,10 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>  	return 0;
>  
>  err_regs:
> +	clk_disable(hsotg->clk_otg);
> +	clk_put(hsotg->clk_otg);
> +
> +err_noclk:
>  	iounmap(hsotg->regs);
>  
>  err_regs_res:
> @@ -3352,6 +3366,9 @@ static int __devexit s3c_hsotg_remove(struct platform_device *pdev)
>  	free_irq(hsotg->irq, hsotg);
>  	iounmap(hsotg->regs);
>  
> +	clk_disable(hsotg->clk_otg);
> +	clk_put(hsotg->clk_otg);
> +
>  	release_resource(hsotg->regs_res);
>  	kfree(hsotg->regs_res);
>  
> -- 
> 1.6.3.3
> 

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock.
  2010-05-28  2:41 ` [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock Kukjin Kim
@ 2010-05-28  7:10   ` Ben Dooks
  0 siblings, 0 replies; 10+ messages in thread
From: Ben Dooks @ 2010-05-28  7:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, May 28, 2010 at 11:41:15AM +0900, Kukjin Kim wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> 
> The input clock frequency for USB Phy is 24 Mhz on the S5PV210
> platform. This patch initializes the clk_xusbxti clock rate to 24Mhz.

is this all s5pv210/s5pc110 machines, or are there any current/likely
machines with non 24M clocks?
 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> ---
>  arch/arm/mach-s5pv210/clock.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
> index 154bca4..4ef09d4 100644
> --- a/arch/arm/mach-s5pv210/clock.c
> +++ b/arch/arm/mach-s5pv210/clock.c
> @@ -954,6 +954,8 @@ void __init_or_cpufreq s5pv210_setup_clocks(void)
>  
>  	printk(KERN_DEBUG "%s: registering clocks\n", __func__);
>  
> +	clk_xusbxti.rate = 24 * MHZ;
> +
>  	clkdiv0 = __raw_readl(S5P_CLK_DIV0);
>  	clkdiv1 = __raw_readl(S5P_CLK_DIV1);
>  
> -- 
> 1.6.3.3
> 

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.
  2010-05-28  2:41 ` [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module Kukjin Kim
  2010-05-28  3:58   ` Ben Dooks
@ 2010-05-28 10:22   ` Ben Dooks
  2010-05-28 10:48     ` Sergei Shtylyov
  1 sibling, 1 reply; 10+ messages in thread
From: Ben Dooks @ 2010-05-28 10:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, May 28, 2010 at 11:41:17AM +0900, Kukjin Kim wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> 
> This patch modifies the following in S3C hsotg driver.
> 
> 1. Gets a reference to the USB OTG hclk clock and enables it. This is
>    required for plaforms on which the USB OTG hclk is disabled during
>    the boot time clock intialization.
> 
> 2. Add necessary clock clean up in case of error during initialization
>    failure or during module unload.
> 
> 3. Add a new field 'clk_otg' in 'struct s3c_hsotg' to maintain a
>    reference to the USB OTG hclk clock.
> 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> ---
>  drivers/usb/gadget/s3c-hsotg.c |   17 +++++++++++++++++
>  1 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> index 81c47d2..526d081 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -130,6 +130,7 @@ struct s3c_hsotg_ep {
>   * @dev: The parent device supplied to the probe function
>   * @driver: USB gadget driver
>   * @plat: The platform specific configuration data.
> + * @clk_otg: The hclk for otg module.
>   * @regs: The memory area mapped for accessing registers.
>   * @regs_res: The resource that was allocated when claiming register space.
>   * @irq: The IRQ number we are using
> @@ -147,6 +148,7 @@ struct s3c_hsotg {
>  	struct device		 *dev;
>  	struct usb_gadget_driver *driver;
>  	struct s3c_hsotg_plat	 *plat;
> +	struct clk		 *clk_otg;
>  
>  	void __iomem		*regs;
>  	struct resource		*regs_res;
> @@ -3269,6 +3271,14 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>  		goto err_regs_res;
>  	}
>  
> +	hsotg->clk_otg = clk_get(&pdev->dev, "otg");
> +	if (IS_ERR(hsotg->clk_otg)) {
> +		dev_err(dev, "failed to find usb otg clock source\n");
> +		ret = -ENODEV;

hmm, -ENODEV isn't really the right error to return here, it'll
get silently ignored by the device core.

> +		goto err_noclk;
> +	}
> +	clk_enable(hsotg->clk_otg);
> +
>  	ret = platform_get_irq(pdev, 0);
>  	if (ret < 0) {
>  		dev_err(dev, "cannot find IRQ\n");
> @@ -3330,6 +3340,10 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>  	return 0;
>  
>  err_regs:
> +	clk_disable(hsotg->clk_otg);
> +	clk_put(hsotg->clk_otg);
> +
> +err_noclk:
>  	iounmap(hsotg->regs);
>  
>  err_regs_res:
> @@ -3352,6 +3366,9 @@ static int __devexit s3c_hsotg_remove(struct platform_device *pdev)
>  	free_irq(hsotg->irq, hsotg);
>  	iounmap(hsotg->regs);
>  
> +	clk_disable(hsotg->clk_otg);
> +	clk_put(hsotg->clk_otg);
> +
>  	release_resource(hsotg->regs_res);
>  	kfree(hsotg->regs_res);
>  
> -- 
> 1.6.3.3
> 

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.
  2010-05-28 10:22   ` Ben Dooks
@ 2010-05-28 10:48     ` Sergei Shtylyov
  2010-05-31  0:39       ` Ben Dooks
  0 siblings, 1 reply; 10+ messages in thread
From: Sergei Shtylyov @ 2010-05-28 10:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hello.

Ben Dooks wrote:

>> From: Thomas Abraham <thomas.ab@samsung.com>

>> This patch modifies the following in S3C hsotg driver.

>> 1. Gets a reference to the USB OTG hclk clock and enables it. This is
>>    required for plaforms on which the USB OTG hclk is disabled during
>>    the boot time clock intialization.

>> 2. Add necessary clock clean up in case of error during initialization
>>    failure or during module unload.

>> 3. Add a new field 'clk_otg' in 'struct s3c_hsotg' to maintain a
>>    reference to the USB OTG hclk clock.

>> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
>> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
>> ---
>>  drivers/usb/gadget/s3c-hsotg.c |   17 +++++++++++++++++
>>  1 files changed, 17 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
>> index 81c47d2..526d081 100644
>> --- a/drivers/usb/gadget/s3c-hsotg.c
>> +++ b/drivers/usb/gadget/s3c-hsotg.c

[...]

>> @@ -3269,6 +3271,14 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>>  		goto err_regs_res;
>>  	}
>>  
>> +	hsotg->clk_otg = clk_get(&pdev->dev, "otg");
>> +	if (IS_ERR(hsotg->clk_otg)) {
>> +		dev_err(dev, "failed to find usb otg clock source\n");
>> +		ret = -ENODEV;

> hmm, -ENODEV isn't really the right error to return here, it'll
> get silently ignored by the device core.

    Right, PTR_ERR(hsotg->clk_otg) should be returned in this case.

WBR, Sergei

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module.
  2010-05-28 10:48     ` Sergei Shtylyov
@ 2010-05-31  0:39       ` Ben Dooks
  0 siblings, 0 replies; 10+ messages in thread
From: Ben Dooks @ 2010-05-31  0:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, May 28, 2010 at 02:48:25PM +0400, Sergei Shtylyov wrote:
> Hello.
>
> Ben Dooks wrote:
>
>>> From: Thomas Abraham <thomas.ab@samsung.com>
>
>>> This patch modifies the following in S3C hsotg driver.
>
>>> 1. Gets a reference to the USB OTG hclk clock and enables it. This is
>>>    required for plaforms on which the USB OTG hclk is disabled during
>>>    the boot time clock intialization.
>
>>> 2. Add necessary clock clean up in case of error during initialization
>>>    failure or during module unload.
>
>>> 3. Add a new field 'clk_otg' in 'struct s3c_hsotg' to maintain a
>>>    reference to the USB OTG hclk clock.
>
>>> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
>>> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
>>> ---
>>>  drivers/usb/gadget/s3c-hsotg.c |   17 +++++++++++++++++
>>>  1 files changed, 17 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
>>> index 81c47d2..526d081 100644
>>> --- a/drivers/usb/gadget/s3c-hsotg.c
>>> +++ b/drivers/usb/gadget/s3c-hsotg.c
>
> [...]
>
>>> @@ -3269,6 +3271,14 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
>>>  		goto err_regs_res;
>>>  	}
>>>  +	hsotg->clk_otg = clk_get(&pdev->dev, "otg");
>>> +	if (IS_ERR(hsotg->clk_otg)) {
>>> +		dev_err(dev, "failed to find usb otg clock source\n");
>>> +		ret = -ENODEV;
>
>> hmm, -ENODEV isn't really the right error to return here, it'll
>> get silently ignored by the device core.
>
>    Right, PTR_ERR(hsotg->clk_otg) should be returned in this case.
>
> WBR, Sergei

yes, missed that thanks.
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2010-05-31  0:39 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-28  2:41 [PATCH] Updates for S3C HSOTG driver Kukjin Kim
2010-05-28  2:41 ` [PATCH 1/4] ARM: S3C64XX: Add USB OTG HCLK to the list of clocks Kukjin Kim
2010-05-28  2:41 ` [PATCH 2/4] ARM: S5PV210: Assign clock rate for clk_xusbxti clock Kukjin Kim
2010-05-28  7:10   ` Ben Dooks
2010-05-28  2:41 ` [PATCH 3/4] ARM: S5P: Add clk_xusbxti clock to the list of clocks to be registered Kukjin Kim
2010-05-28  2:41 ` [PATCH 4/4] usb: s3c-hsotg: Enable HCLK for the OTG module Kukjin Kim
2010-05-28  3:58   ` Ben Dooks
2010-05-28 10:22   ` Ben Dooks
2010-05-28 10:48     ` Sergei Shtylyov
2010-05-31  0:39       ` Ben Dooks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).