diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-07-28 15:08:44 +0530 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-08-10 11:23:48 +0530 |
commit | 94bf95fc30f3c599b59c1d9101a5a19266830044 (patch) | |
tree | d9043ca9c5bb113e578c055b3fc2bf7b89150dcb | |
parent | cba140b70ad14858a363f7ce101b4b3ff9d68ae6 (diff) |
ARM: OMAP4: UART clock fixes
Clock nodes are no modelled yet so this patch bypass
the clock nodes
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
-rw-r--r-- | arch/arm/mach-omap2/serial.c | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index c0bea75f13f8..aa6c2f33fbf0 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -207,11 +207,16 @@ static inline void omap_uart_enable_clocks(struct omap_uart_state *uart) { if (uart->clocked) return; - - clk_enable(uart->ick); - clk_enable(uart->fck); - uart->clocked = 1; - omap_uart_restore_context(uart); + /* + * FIX-ME: Replace with correct clk node when clk + * framework is available + */ + if (!cpu_is_omap44xx()) { + clk_enable(uart->ick); + clk_enable(uart->fck); + uart->clocked = 1; + omap_uart_restore_context(uart); + } } #ifdef CONFIG_PM @@ -521,23 +526,30 @@ void __init omap_serial_init(void) continue; } - sprintf(name, "uart%d_ick", i+1); - uart->ick = clk_get(NULL, name); - if (IS_ERR(uart->ick)) { - printk(KERN_ERR "Could not get uart%d_ick\n", i+1); - uart->ick = NULL; - } - - sprintf(name, "uart%d_fck", i+1); - uart->fck = clk_get(NULL, name); - if (IS_ERR(uart->fck)) { - printk(KERN_ERR "Could not get uart%d_fck\n", i+1); - uart->fck = NULL; - } + /* + * FIX-ME: Replace with correct clk node when clk + * framework is available + */ + if (!cpu_is_omap44xx()) { + sprintf(name, "uart%d_ick", i+1); + uart->ick = clk_get(NULL, name); + if (IS_ERR(uart->ick)) { + printk(KERN_ERR "Could not get uart%d_ick\n", \ + i+1); + uart->ick = NULL; + } - if (!uart->ick || !uart->fck) - continue; + sprintf(name, "uart%d_fck", i+1); + uart->fck = clk_get(NULL, name); + if (IS_ERR(uart->fck)) { + printk(KERN_ERR "Could not get uart%d_fck\n", \ + i+1); + uart->fck = NULL; + } + if (!uart->ick || !uart->fck) + continue; + } uart->num = i; p->private_data = uart; uart->p = p; |