diff options
-rw-r--r-- | arch/arm/mach-mx3/clock.c | 4 | ||||
-rw-r--r-- | drivers/w1/masters/mxc_w1.c | 2 |
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); |