All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/8] s3c6410: sdhci: Set parent clock, source clock and sdhci module speed.
@ 2009-09-08  6:51 ` thomas.ab at samsung.com
  0 siblings, 0 replies; 4+ messages in thread
From: thomas.ab @ 2009-09-08  6:51 UTC (permalink / raw)
  To: ben-linux; +Cc: linux-arm-kernel, linux-mmc, Thomas Abraham

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

This patch sets the parent clock, source clock and sdhci module
clock speed for 6410 sdhci controller.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
---
 drivers/mmc/host/sdhci-s3c.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 50997d2..db1bb93 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -22,6 +22,8 @@
 
 #include <plat/sdhci.h>
 #include <plat/regs-sdhci.h>
+#include <plat/clock.h>
+#include <plat/cpu.h>
 
 #include "sdhci.h"
 
@@ -221,6 +223,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 	struct sdhci_host *host;
 	struct sdhci_s3c *sc;
 	struct resource *res;
+	struct clk *clk_mmc, *clk_parent;
 	int ret, irq, ptr, clks;
 
 	if (!pdata) {
@@ -240,6 +243,16 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
+	/* Set the SDHCI controller clock rate */
+	clk_mmc = clk_get(dev, pdata->clk_source_name);
+	clk_parent = clk_get(dev, pdata->clk_parent_name);
+        if (!clk_mmc || !clk_parent) {
+                dev_err(dev, "could not obtain clock information");
+                return -ENXIO;
+        }
+	clk_set_parent(clk_mmc, clk_parent);
+	clk_set_rate(clk_mmc, pdata->clk_speed);
+
 	host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c));
 	if (IS_ERR(host)) {
 		dev_err(dev, "sdhci_alloc_host() failed\n");
-- 
1.5.3.4


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

* [PATCH 3/8] s3c6410: sdhci: Set parent clock, source clock and sdhci module speed.
@ 2009-09-08  6:51 ` thomas.ab at samsung.com
  0 siblings, 0 replies; 4+ messages in thread
From: thomas.ab at samsung.com @ 2009-09-08  6:51 UTC (permalink / raw)
  To: linux-arm-kernel

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

This patch sets the parent clock, source clock and sdhci module
clock speed for 6410 sdhci controller.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
---
 drivers/mmc/host/sdhci-s3c.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 50997d2..db1bb93 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -22,6 +22,8 @@
 
 #include <plat/sdhci.h>
 #include <plat/regs-sdhci.h>
+#include <plat/clock.h>
+#include <plat/cpu.h>
 
 #include "sdhci.h"
 
@@ -221,6 +223,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 	struct sdhci_host *host;
 	struct sdhci_s3c *sc;
 	struct resource *res;
+	struct clk *clk_mmc, *clk_parent;
 	int ret, irq, ptr, clks;
 
 	if (!pdata) {
@@ -240,6 +243,16 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
+	/* Set the SDHCI controller clock rate */
+	clk_mmc = clk_get(dev, pdata->clk_source_name);
+	clk_parent = clk_get(dev, pdata->clk_parent_name);
+        if (!clk_mmc || !clk_parent) {
+                dev_err(dev, "could not obtain clock information");
+                return -ENXIO;
+        }
+	clk_set_parent(clk_mmc, clk_parent);
+	clk_set_rate(clk_mmc, pdata->clk_speed);
+
 	host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c));
 	if (IS_ERR(host)) {
 		dev_err(dev, "sdhci_alloc_host() failed\n");
-- 
1.5.3.4

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

* Re: [PATCH 3/8] s3c6410: sdhci: Set parent clock, source clock and sdhci module speed.
  2009-09-08  6:51 ` thomas.ab at samsung.com
@ 2009-09-16  0:46   ` Ben Dooks
  -1 siblings, 0 replies; 4+ messages in thread
From: Ben Dooks @ 2009-09-16  0:46 UTC (permalink / raw)
  To: thomas.ab; +Cc: ben-linux, linux-mmc, linux-arm-kernel

On Tue, Sep 08, 2009 at 03:51:26PM +0900, thomas.ab@samsung.com wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> 
> This patch sets the parent clock, source clock and sdhci module
> clock speed for 6410 sdhci controller.

The driver should really be presented with a correct list of sources
for mmc_bus in the platform data (ok, the last post was incorrect as
I forgot the mux on mmc_bus as well as the mux in the driver block).

Any static setup of mmc_bus can be done in the machine setup code,
otherwise please look at how the choices for the SDHCI mux is presented.
 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> ---
>  drivers/mmc/host/sdhci-s3c.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 50997d2..db1bb93 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -22,6 +22,8 @@
>  
>  #include <plat/sdhci.h>
>  #include <plat/regs-sdhci.h>
> +#include <plat/clock.h>
> +#include <plat/cpu.h>
>  
>  #include "sdhci.h"
>  
> @@ -221,6 +223,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
>  	struct sdhci_host *host;
>  	struct sdhci_s3c *sc;
>  	struct resource *res;
> +	struct clk *clk_mmc, *clk_parent;
>  	int ret, irq, ptr, clks;
>  
>  	if (!pdata) {
> @@ -240,6 +243,16 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
>  		return -ENOENT;
>  	}
>  
> +	/* Set the SDHCI controller clock rate */
> +	clk_mmc = clk_get(dev, pdata->clk_source_name);
> +	clk_parent = clk_get(dev, pdata->clk_parent_name);
> +        if (!clk_mmc || !clk_parent) {
> +                dev_err(dev, "could not obtain clock information");
> +                return -ENXIO;
> +        }
> +	clk_set_parent(clk_mmc, clk_parent);
> +	clk_set_rate(clk_mmc, pdata->clk_speed);
> +
>  	host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c));
>  	if (IS_ERR(host)) {
>  		dev_err(dev, "sdhci_alloc_host() failed\n");
> -- 
> 1.5.3.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
-- 
Ben

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


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

* [PATCH 3/8] s3c6410: sdhci: Set parent clock, source clock and sdhci module speed.
@ 2009-09-16  0:46   ` Ben Dooks
  0 siblings, 0 replies; 4+ messages in thread
From: Ben Dooks @ 2009-09-16  0:46 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Sep 08, 2009 at 03:51:26PM +0900, thomas.ab at samsung.com wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> 
> This patch sets the parent clock, source clock and sdhci module
> clock speed for 6410 sdhci controller.

The driver should really be presented with a correct list of sources
for mmc_bus in the platform data (ok, the last post was incorrect as
I forgot the mux on mmc_bus as well as the mux in the driver block).

Any static setup of mmc_bus can be done in the machine setup code,
otherwise please look at how the choices for the SDHCI mux is presented.
 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
> ---
>  drivers/mmc/host/sdhci-s3c.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 50997d2..db1bb93 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -22,6 +22,8 @@
>  
>  #include <plat/sdhci.h>
>  #include <plat/regs-sdhci.h>
> +#include <plat/clock.h>
> +#include <plat/cpu.h>
>  
>  #include "sdhci.h"
>  
> @@ -221,6 +223,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
>  	struct sdhci_host *host;
>  	struct sdhci_s3c *sc;
>  	struct resource *res;
> +	struct clk *clk_mmc, *clk_parent;
>  	int ret, irq, ptr, clks;
>  
>  	if (!pdata) {
> @@ -240,6 +243,16 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
>  		return -ENOENT;
>  	}
>  
> +	/* Set the SDHCI controller clock rate */
> +	clk_mmc = clk_get(dev, pdata->clk_source_name);
> +	clk_parent = clk_get(dev, pdata->clk_parent_name);
> +        if (!clk_mmc || !clk_parent) {
> +                dev_err(dev, "could not obtain clock information");
> +                return -ENXIO;
> +        }
> +	clk_set_parent(clk_mmc, clk_parent);
> +	clk_set_rate(clk_mmc, pdata->clk_speed);
> +
>  	host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c));
>  	if (IS_ERR(host)) {
>  		dev_err(dev, "sdhci_alloc_host() failed\n");
> -- 
> 1.5.3.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
-- 
Ben

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

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

end of thread, other threads:[~2009-09-16  0:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-08  6:51 [PATCH 3/8] s3c6410: sdhci: Set parent clock, source clock and sdhci module speed thomas.ab
2009-09-08  6:51 ` thomas.ab at samsung.com
2009-09-16  0:46 ` Ben Dooks
2009-09-16  0:46   ` Ben Dooks

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.