summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-mx3/clock.c4
-rw-r--r--drivers/w1/masters/mxc_w1.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-mx3/clock.c b/arch/arm/mach-mx3/clock.c
index 0b5785367085..b29c4011a795 100644
--- a/arch/arm/mach-mx3/clock.c
+++ b/arch/arm/mach-mx3/clock.c
@@ -759,6 +759,10 @@ static struct clk i2c_clk[] = {
static struct clk owire_clk = {
.name = "owire_clk",
.parent = &perclk_clk,
+ .enable_reg = MXC_CCM_CGR1,
+ .enable_shift = MXC_CCM_CGR1_OWIRE_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
};
static struct clk sdhc_clk[] = {
diff --git a/drivers/w1/masters/mxc_w1.c b/drivers/w1/masters/mxc_w1.c
index c9a146096209..6f0c00c82f39 100644
--- a/drivers/w1/masters/mxc_w1.c
+++ b/drivers/w1/masters/mxc_w1.c
@@ -344,7 +344,6 @@ static int __devinit mxc_w1_probe(struct platform_device *pdev)
return -ENOMEM;
}
dev->clk = clk_get(&pdev->dev, "owire_clk");
-
dev->bus_master = (struct w1_bus_master *)(dev + 1);
dev->found = 1;
dev->clkdiv = (clk_get_rate(dev->clk) / 1000000) - 1;
@@ -389,6 +388,7 @@ static int mxc_w1_remove(struct platform_device *pdev)
{
struct mxc_w1_device *dev = platform_get_drvdata(pdev);
+ clk_disable(dev->clk);
clk_put(dev->clk);
if (dev->found) {
w1_remove_master_device(dev->bus_master);