Signed-off-by: Kevin Hilman <khil...@deeprootsystems.com>
---
 arch/arm/Kconfig                            |    1 +
 arch/arm/mach-davinci/clock.c               |   39 ++++++-----
 arch/arm/mach-davinci/clock.h               |   15 +++++
 arch/arm/mach-davinci/devices.c             |    4 -
 arch/arm/mach-davinci/dm355.c               |   90 +++++++++++++-------------
 arch/arm/mach-davinci/dm644x.c              |   87 +++++++++++++------------
 arch/arm/mach-davinci/dm646x.c              |   67 +++++++++++---------
 arch/arm/mach-davinci/include/mach/clkdev.h |   13 ++++
 arch/arm/mach-davinci/include/mach/clock.h  |    1 -
 arch/arm/mach-davinci/time.c                |   17 +++--
 drivers/i2c/busses/i2c-davinci.c            |    2 +-
 drivers/mmc/host/davinci_mmc.c              |    2 +-
 drivers/net/davinci_emac.c                  |    2 +-
 drivers/watchdog/davinci_wdt.c              |    2 +-
 sound/soc/davinci/davinci-i2s.c             |    6 +--
 15 files changed, 192 insertions(+), 156 deletions(-)
 create mode 100644 arch/arm/mach-davinci/include/mach/clkdev.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9bf3cb0..56094ed 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -560,6 +560,7 @@ config ARCH_DAVINCI
        select HAVE_CLK
        select ZONE_DMA
        select HAVE_IDE
+       select COMMON_CLKDEV
 
        help
          Support for TI's DaVinci platform.
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index ff8b253..4cae71c 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -30,6 +30,7 @@ static LIST_HEAD(clocks);
 static DEFINE_MUTEX(clocks_mutex);
 static DEFINE_SPINLOCK(clockfw_lock);
 
+#ifndef CONFIG_COMMON_CLKDEV
 extern void davinci_psc_config(unsigned int domain, unsigned int id, char 
enable);
 
 /*
@@ -137,6 +138,7 @@ void clk_put(struct clk *clk)
                module_put(clk->owner);
 }
 EXPORT_SYMBOL(clk_put);
+#endif /* CONFIG_COMMON_CLKDEV */
 
 static unsigned psc_domain(struct clk *clk)
 {
@@ -372,31 +374,32 @@ static void __init clk_pll_init(struct clk *clk)
        pr_debug("] --> %lu MHz output.\n", clk->rate / 1000000);
 }
 
-int __init davinci_clk_init(struct clk *clocks[])
-{
-       struct clk *clkp;
-       int i = 0;
+int __init davinci_clk_init(struct davinci_clk *clocks)
+  {
+       struct davinci_clk *c;
+       struct clk *clk;
+  
+       printk("%s\n", __func__);
+       for ( c = clocks; c->lk.clk; c++ ) {
+               clk = c->lk.clk;
 
-       while ((clkp = clocks[i++])) {
-               if (clkp->pll_data)
-                       clk_pll_init(clkp);
+               printk("%s: %s\n", __func__, c->lk.con_id);
+               if (clk->pll_data)
+                       clk_pll_init(clk);
 
                /* Calculate rates for PLL-derived clocks */
-               else if (clkp->flags & CLK_PLL)
-                       clk_sysclk_recalc(clkp);
-
-               if (clkp->lpsc)
-                       clkp->flags |= CLK_PSC;
+               else if (clk->flags & CLK_PLL)
+                       clk_sysclk_recalc(clk);
 
-               clk_register(clkp);
+               if (clk->lpsc)
+                       clk->flags |= CLK_PSC;
 
-               /* FIXME: remove equivalent special-cased code from
-                * davinci_psc_init() once cpus list *all* clocks.
-                */
+               clkdev_add(&c->lk);
+               clk_register(clk);
 
                /* Turn on clocks that Linux doesn't otherwise manage */
-               if (clkp->flags & ALWAYS_ENABLED)
-                       clk_enable(clkp);
+               if (clk->flags & ALWAYS_ENABLED)
+                       clk_enable(clk);
        }
 
        return 0;
diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h
index c1191df..24cfed4 100644
--- a/arch/arm/mach-davinci/clock.h
+++ b/arch/arm/mach-davinci/clock.h
@@ -12,6 +12,7 @@
 #define __ARCH_ARM_DAVINCI_CLOCK_H
 
 #include <linux/list.h>
+#include <asm/clkdev.h>
 
 #define DAVINCI_PLL1_BASE 0x01c40800
 #define DAVINCI_PLL2_BASE 0x01c40c00
@@ -76,7 +77,21 @@ struct clk {
 #define CLK_PLL                        BIT(4) /* PLL-derived clock */
 #define PRE_PLL                 BIT(5) /* source is before PLL mult/div */
 
+struct davinci_clk {
+       struct clk_lookup lk;
+};
+
+#define CLK(dev, con, ck)              \
+       {                               \
+               .lk = {                 \
+                       .dev_id = dev,  \
+                       .con_id = con,  \
+                       .clk = ck,      \
+               },                      \
+       }
+
 int davinci_clk_associate(struct device *dev, const char *logical_clockname,
                          const char *physical_clockname);
 
+int davinci_clk_init(struct davinci_clk *clocks);
 #endif
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
index a0f5a60..ffc6d7f 100644
--- a/arch/arm/mach-davinci/devices.c
+++ b/arch/arm/mach-davinci/devices.c
@@ -152,7 +152,6 @@ static struct platform_device davinci_mmcsd1_device = {
 void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config)
 {
        struct platform_device  *pdev = NULL;
-       const char              *clockname;
 
        if (WARN_ON(cpu_is_davinci_dm646x()))
                return;
@@ -179,7 +178,6 @@ void __init davinci_setup_mmc(int module, struct 
davinci_mmc_config *config)
                davinci_cfg_reg(DM355_SD1_DATA3);
 
                pdev = &davinci_mmcsd1_device;
-               clockname = "mmcsd1";
                break;
        case 0:
                if (cpu_is_davinci_dm355()) {
@@ -206,7 +204,6 @@ void __init davinci_setup_mmc(int module, struct 
davinci_mmc_config *config)
                }
 
                pdev = &davinci_mmcsd0_device;
-               clockname = cpu_is_davinci_dm355() ? "mmcsd0" : "mmcsd";
                break;
        }
 
@@ -214,7 +211,6 @@ void __init davinci_setup_mmc(int module, struct 
davinci_mmc_config *config)
                return;
 
        pdev->dev.platform_data = config;
-       davinci_clk_associate(&pdev->dev, "mmc", clockname);
        platform_device_register(pdev);
 }
 
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index 0a9cd98..15bf9f2 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -304,6 +304,7 @@ static struct clk timer2_clk = {
        .name = "timer2",
        .parent = &pll1_aux_clk,
        .lpsc = DAVINCI_LPSC_TIMER2,
+       .usecount = 1,              /* REVISIT: why cant' this be disabled? */
 };
 
 static struct clk timer3_clk = {
@@ -324,50 +325,50 @@ static struct clk usb_clk = {
        .lpsc = DAVINCI_LPSC_USB,
 };
 
-static struct clk *dm355_clks[] __initdata = {
-       &ref_clk,
-       &pll1_clk,
-       &pll1_sysclk1,
-       &pll1_sysclk2,
-       &pll1_sysclk3,
-       &pll1_sysclk4,
-       &pll1_aux_clk,
-       &pll1_sysclkbp,
-       &vpss_dac_clk,
-       &vpss_master_clk,
-       &vpss_slave_clk,
-       &clkout1_clk,
-       &clkout2_clk,
-       &pll2_clk,
-       &pll2_sysclk1,
-       &pll2_sysclkbp,
-       &clkout3_clk,
-       &arm_clk,
-       &mjcp_clk,
-       &uart0_clk,
-       &uart1_clk,
-       &uart2_clk,
-       &i2c_clk,
-       &asp0_clk,
-       &asp1_clk,
-       &mmcsd0_clk,
-       &mmcsd1_clk,
-       &spi0_clk,
-       &spi1_clk,
-       &spi2_clk,
-       &gpio_clk,
-       &aemif_clk,
-       &pwm0_clk,
-       &pwm1_clk,
-       &pwm2_clk,
-       &pwm3_clk,
-       &timer0_clk,
-       &timer1_clk,
-       &timer2_clk,
-       &timer3_clk,
-       &rto_clk,
-       &usb_clk,
-       NULL,
+static struct davinci_clk dm355_clks[] = {
+       CLK(NULL, "ref", &ref_clk),
+       CLK(NULL, "pll1", &pll1_clk),
+       CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
+       CLK(NULL, "pll1_sysclk2", &pll1_sysclk2),
+       CLK(NULL, "pll1_sysclk3", &pll1_sysclk3),
+       CLK(NULL, "pll1_sysclk4", &pll1_sysclk4),
+       CLK(NULL, "pll1_aux", &pll1_aux_clk),
+       CLK(NULL, "pll1_sysclkbp", &pll1_sysclkbp),
+       CLK(NULL, "vpss_dac", &vpss_dac_clk),
+       CLK(NULL, "vpss_master", &vpss_master_clk),
+       CLK(NULL, "vpss_slave", &vpss_slave_clk),
+       CLK(NULL, "clkout1", &clkout1_clk),
+       CLK(NULL, "clkout2", &clkout2_clk),
+       CLK(NULL, "pll2", &pll2_clk),
+       CLK(NULL, "pll2_sysclk1", &pll2_sysclk1),
+       CLK(NULL, "pll2_sysclkbp", &pll2_sysclkbp),
+       CLK(NULL, "clkout3", &clkout3_clk),
+       CLK(NULL, "arm", &arm_clk),
+       CLK(NULL, "mjcp", &mjcp_clk),
+       CLK(NULL, "uart0", &uart0_clk),
+       CLK(NULL, "uart1", &uart1_clk),
+       CLK(NULL, "uart2", &uart2_clk),
+       CLK("i2c_davinci.1", "i2c", &i2c_clk),
+       CLK("soc-audio.0", "asp", &asp0_clk),
+       CLK("soc-audio.1", "asp", &asp1_clk),
+       CLK("davinci_mmc.0", "mmcsd", &mmcsd0_clk),
+       CLK("davinci_mmc.1", "mmcsd", &mmcsd1_clk),
+       CLK(NULL, "spi0", &spi0_clk),
+       CLK(NULL, "spi1", &spi1_clk),
+       CLK(NULL, "spi2", &spi2_clk),
+       CLK(NULL, "gpio", &gpio_clk),
+       CLK(NULL, "aemif", &aemif_clk),
+       CLK(NULL, "pwm0", &pwm0_clk),
+       CLK(NULL, "pwm1", &pwm1_clk),
+       CLK(NULL, "pwm2", &pwm2_clk),
+       CLK(NULL, "pwm3", &pwm3_clk),
+       CLK(NULL, "timer0", &timer0_clk),
+       CLK(NULL, "timer1", &timer1_clk),
+       CLK("watchdog", "timer2", &timer2_clk),
+       CLK(NULL, "timer3", &timer3_clk),
+       CLK(NULL, "rto", &rto_clk),
+       CLK(NULL, "usb", &usb_clk),
+       CLK(NULL, NULL, NULL),
 };
 
 /*----------------------------------------------------------------------*/
@@ -418,7 +419,6 @@ void __init dm355_init_spi0(unsigned chipselect_mask,
 
        spi_register_board_info(info, len);
 
-       davinci_clk_associate(&dm355_spi0_device.dev, "spi", "spi0");
        platform_device_register(&dm355_spi0_device);
 }
 
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index 7251b82..008966e 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -177,7 +177,7 @@ static struct clk emac_clk = {
 };
 
 static struct clk i2c_clk = {
-       .name = "I2CCLK",
+       .name = "i2c",
        .parent = &pll1_aux_clk,
        .lpsc = DAVINCI_LPSC_I2C,
 };
@@ -264,47 +264,50 @@ static struct clk timer2_clk = {
        .name = "timer2",
        .parent = &pll1_aux_clk,
        .lpsc = DAVINCI_LPSC_TIMER2,
-};
-
-static struct clk *dm644x_clks[] __initdata = {
-       &ref_clk,
-       &pll1_clk,
-       &pll1_sysclk1,
-       &pll1_sysclk2,
-       &pll1_sysclk3,
-       &pll1_sysclk5,
-       &pll1_aux_clk,
-       &pll1_sysclkbp,
-       &pll2_clk,
-       &pll2_sysclk1,
-       &pll2_sysclk2,
-       &pll2_sysclkbp,
-       &dsp_clk,
-       &arm_clk,
-       &vicp_clk,
-       &vpss_master_clk,
-       &vpss_slave_clk,
-       &uart0_clk,
-       &uart1_clk,
-       &uart2_clk,
-       &emac_clk,
-       &i2c_clk,
-       &ide_clk,
-       &asp_clk,
-       &mmcsd_clk,
-       &spi_clk,
-       &gpio_clk,
-       &usb_clk,
-       &vlynq_clk,
-       &aemif_clk,
-       &pwm0_clk,
-       &pwm1_clk,
-       &pwm2_clk,
-       &timer0_clk,
-       &timer1_clk,
-       &timer2_clk,
-       NULL,
-};
+       .usecount = 1,              /* REVISIT: why cant' this be disabled? */
+};
+
+struct davinci_clk dm644x_clks[] = {
+       CLK(NULL, "ref", &ref_clk),
+       CLK(NULL, "pll1", &pll1_clk),
+       CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
+       CLK(NULL, "pll1_sysclk2", &pll1_sysclk2),
+       CLK(NULL, "pll1_sysclk3", &pll1_sysclk3),
+       CLK(NULL, "pll1_sysclk5", &pll1_sysclk5),
+       CLK(NULL, "pll1_aux", &pll1_aux_clk),
+       CLK(NULL, "pll1_sysclkbp", &pll1_sysclkbp),
+       CLK(NULL, "pll2", &pll2_clk),
+       CLK(NULL, "pll2_sysclk1", &pll2_sysclk1),
+       CLK(NULL, "pll2_sysclk2", &pll2_sysclk2),
+       CLK(NULL, "pll2_sysclkbp", &pll2_sysclkbp),
+       CLK(NULL, "dsp", &dsp_clk),
+       CLK(NULL, "arm", &arm_clk),
+       CLK(NULL, "vicp", &vicp_clk),
+       CLK(NULL, "vpss_master", &vpss_master_clk),
+       CLK(NULL, "vpss_slave", &vpss_slave_clk),
+       CLK(NULL, "arm", &arm_clk),
+       CLK(NULL, "uart0", &uart0_clk),
+       CLK(NULL, "uart1", &uart1_clk),
+       CLK(NULL, "uart2", &uart2_clk),
+       CLK("davinci_emac.1", "emac", &emac_clk),
+       CLK("i2c_davinci.1", "i2c", &i2c_clk),
+       CLK(NULL, "IDECLK", &ide_clk),
+       CLK("soc-audio.0", "asp", &asp_clk),
+       CLK("davinci_mmc.0", "mmcsd", &mmcsd_clk),
+       CLK(NULL, "spi", &spi_clk),
+       CLK(NULL, "gpio", &gpio_clk),
+       CLK(NULL, "usb", &usb_clk),
+       CLK(NULL, "vlynq", &vlynq_clk),
+       CLK(NULL, "aemif", &aemif_clk),
+       CLK(NULL, "pwm0", &pwm0_clk),
+       CLK(NULL, "pwm1", &pwm1_clk),
+       CLK(NULL, "pwm2", &pwm2_clk),
+       CLK(NULL, "timer0", &timer0_clk),
+       CLK(NULL, "timer1", &timer1_clk),
+       CLK("watchdog", "timer2", &timer2_clk),
+       CLK(NULL, NULL, NULL),
+};
+  
 
 /*
  * Device specific mux setup
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 6b13bcc..3de83fe 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -220,36 +220,43 @@ static struct clk timer1_clk = {
        .lpsc = DM646X_LPSC_TIMER1,
 };
 
-static struct clk *dm646x_clks[] __initdata = {
-       &ref_clk,
-       &aux_clkin,
-       &pll1_clk,
-       &pll1_sysclk1,
-       &pll1_sysclk2,
-       &pll1_sysclk3,
-       &pll1_sysclk4,
-       &pll1_sysclk5,
-       &pll1_sysclk6,
-       &pll1_sysclk8,
-       &pll1_sysclk9,
-       &pll1_sysclkbp,
-       &pll1_aux_clk,
-       &pll2_clk,
-       &pll2_sysclk1,
-       &dsp_clk,
-       &arm_clk,
-       &uart0_clk,
-       &uart1_clk,
-       &uart2_clk,
-       &i2c_clk,
-       &gpio_clk,
-       &aemif_clk,
-       &emac_clk,
-       &pwm0_clk,
-       &pwm1_clk,
-       &timer0_clk,
-       &timer1_clk,
-       NULL,
+static struct clk timer2_clk = {
+       .name = "timer2",
+       .parent = &pll1_sysclk3,
+       .flags = ALWAYS_ENABLED, /* no LPSC, always enabled; c.f. spruep9a */
+};
+
+struct davinci_clk dm646x_clks[] = {
+       CLK(NULL, "ref", &ref_clk),
+       CLK(NULL, "aux", &aux_clkin),
+       CLK(NULL, "pll1", &pll1_clk),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk1),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk2),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk3),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk4),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk5),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk6),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk8),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclk9),
+       CLK(NULL, "pll1_sysclk", &pll1_sysclkbp),
+       CLK(NULL, "pll1_aux", &pll1_aux_clk),
+       CLK(NULL, "pll2", &pll2_clk),
+       CLK(NULL, "pll2_sysclk1", &pll2_sysclk1),
+       CLK(NULL, "dsp", &dsp_clk),
+       CLK(NULL, "arm", &arm_clk),
+       CLK(NULL, "uart0", &uart0_clk),
+       CLK(NULL, "uart1", &uart1_clk),
+       CLK(NULL, "uart2", &uart2_clk),
+       CLK("i2c_davinci.1", "i2c", &i2c_clk),
+       CLK(NULL, "gpio", &gpio_clk),
+       CLK(NULL, "aemif", &aemif_clk),
+       CLK("davinci_emac.1", "emac", &emac_clk),
+       CLK(NULL, "pwm0", &pwm0_clk),
+       CLK(NULL, "pwm1", &pwm1_clk),
+       CLK(NULL, "timer0", &timer0_clk),
+       CLK(NULL, "timer1", &timer1_clk),
+       CLK("watchdog", "timer2", &timer2_clk),
+       CLK(NULL, NULL, NULL),
 };
 
 /*
diff --git a/arch/arm/mach-davinci/include/mach/clkdev.h 
b/arch/arm/mach-davinci/include/mach/clkdev.h
new file mode 100644
index 0000000..730c49d
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/clkdev.h
@@ -0,0 +1,13 @@
+#ifndef __MACH_CLKDEV_H
+#define __MACH_CLKDEV_H
+
+static inline int __clk_get(struct clk *clk)
+{
+       return 1;
+}
+
+static inline void __clk_put(struct clk *clk)
+{
+}
+
+#endif
diff --git a/arch/arm/mach-davinci/include/mach/clock.h 
b/arch/arm/mach-davinci/include/mach/clock.h
index 78cfb35..a3b0402 100644
--- a/arch/arm/mach-davinci/include/mach/clock.h
+++ b/arch/arm/mach-davinci/include/mach/clock.h
@@ -17,6 +17,5 @@ struct clk;
 
 extern int clk_register(struct clk *clk);
 extern void clk_unregister(struct clk *clk);
-extern int davinci_clk_init(struct clk *clocks[]);
 
 #endif
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c
index 3a27a2b..a9992d6 100644
--- a/arch/arm/mach-davinci/time.c
+++ b/arch/arm/mach-davinci/time.c
@@ -18,6 +18,7 @@
 #include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/device.h>
 
 #include <mach/hardware.h>
 #include <asm/system.h>
@@ -309,7 +310,7 @@ static struct clock_event_device clockevent_davinci = {
 
 static void __init davinci_timer_init(void)
 {
-       struct clk *timer_clk, *wd_clk;
+       struct clk *timer_clk;
 
        static char err[] __initdata = KERN_ERR
                "%s: can't register clocksource!\n";
@@ -321,12 +322,6 @@ static void __init davinci_timer_init(void)
        BUG_ON(IS_ERR(timer_clk));
        clk_enable(timer_clk);
 
-       if (cpu_is_davinci_dm644x() || cpu_is_davinci_dm355()) {
-               wd_clk = clk_get(NULL, "timer2");
-               BUG_ON(IS_ERR(wd_clk));
-               clk_enable(wd_clk);
-       }
-
        davinci_clock_tick_rate = clk_get_rate(timer_clk);
        clk_put(timer_clk);
 
@@ -358,6 +353,14 @@ struct sys_timer davinci_timer = {
 void davinci_watchdog_reset(void) {
        u32 tgcr, wdtcr;
        void __iomem *base = IO_ADDRESS(DAVINCI_WDOG_BASE);
+       struct device dev;
+       struct clk *wd_clk;
+
+       dev_set_name(&dev, "watchdog");
+       wd_clk = clk_get(&dev, NULL);
+       if (WARN_ON(IS_ERR(wd_clk)))
+               return;
+       clk_enable(wd_clk);
 
        /* disable, internal clock source */
        __raw_writel(0, base + TCR);
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
index 0916871..b3d3a18 100755
--- a/drivers/i2c/busses/i2c-davinci.c
+++ b/drivers/i2c/busses/i2c-davinci.c
@@ -554,7 +554,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
        dev->irq = irq->start;
        platform_set_drvdata(pdev, dev);
 
-       dev->clk = clk_get(&pdev->dev, "I2CCLK");
+       dev->clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(dev->clk)) {
                r = -ENODEV;
                goto err_free_mem;
diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
index b034af6..28f61ac 100644
--- a/drivers/mmc/host/davinci_mmc.c
+++ b/drivers/mmc/host/davinci_mmc.c
@@ -1133,7 +1133,7 @@ static int __init davinci_mmcsd_probe(struct 
platform_device *pdev)
                goto out;
 
        ret = -ENXIO;
-       host->clk = clk_get(&pdev->dev, "mmc");
+       host->clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(host->clk)) {
                ret = PTR_ERR(host->clk);
                goto out;
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 4f25fb6..b1e6c7f 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -2605,7 +2605,7 @@ static int __devinit davinci_emac_probe(struct 
platform_device *pdev)
        unsigned long size;
 
        /* obtain emac clock from kernel */
-       emac_clk = clk_get(&pdev->dev, "emac");
+       emac_clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(emac_clk)) {
                printk(KERN_ERR "DaVinci EMAC: Failed to get EMAC clock\n");
                return -EBUSY;
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c
index 1eca9a0..3298db0 100644
--- a/drivers/watchdog/davinci_wdt.c
+++ b/drivers/watchdog/davinci_wdt.c
@@ -205,7 +205,7 @@ static int davinci_wdt_probe(struct platform_device *pdev)
        struct resource *res;
        struct device *dev = &pdev->dev;
 
-       wdt_clk = clk_get(dev, "timer2");
+       wdt_clk = clk_get(dev, NULL);
        if (WARN_ON(!wdt_clk))
                return -ENODEV;
        clk_enable(wdt_clk);
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c
index d9c3c3b..7b482c5 100644
--- a/sound/soc/davinci/davinci-i2s.c
+++ b/sound/soc/davinci/davinci-i2s.c
@@ -446,10 +446,6 @@ static int davinci_i2s_probe(struct platform_device *pdev,
        struct resource *mem, *ioarea;
        struct evm_snd_platform_data *pdata;
        int ret;
-       static const char *clocks[] = { "asp0", "asp1", };
-
-       if (pdev->id < 0 || pdev->id > ARRAY_SIZE(clocks))
-               return -EINVAL;
 
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!mem) {
@@ -472,7 +468,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,
 
        cpu_dai->private_data = dev;
 
-       dev->clk = clk_get(&pdev->dev, clocks[pdev->id]);
+       dev->clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(dev->clk)) {
                ret = -ENODEV;
                goto err_free_mem;
-- 
1.6.1.2


_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to