summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2009-07-28 15:08:44 +0530
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2009-08-10 11:23:48 +0530
commit94bf95fc30f3c599b59c1d9101a5a19266830044 (patch)
treed9043ca9c5bb113e578c055b3fc2bf7b89150dcb
parentcba140b70ad14858a363f7ce101b4b3ff9d68ae6 (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.c52
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;