[PATCH 4/4]ARM: NUC900: enable uart support for nuc932
Wan ZongShun
mcuos.com at gmail.com
Wed Dec 2 08:58:25 EST 2009
Dear Russell,
This patch enables uart support for nuc932.
Signed-off-by: Wan ZongShun <mcuos.com at gmail.com>
---
arch/arm/mach-w90x900/clock.h | 2 ++
arch/arm/mach-w90x900/cpu.h | 2 +-
arch/arm/mach-w90x900/mach-nuc932evb.c | 1 +
arch/arm/mach-w90x900/nuc932.c | 10 ++++++++++
arch/arm/mach-w90x900/nuc932.h | 1 +
5 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-w90x900/clock.h b/arch/arm/mach-w90x900/clock.h
index b9ea2e6..2a2a54a 100644
--- a/arch/arm/mach-w90x900/clock.h
+++ b/arch/arm/mach-w90x900/clock.h
@@ -14,8 +14,10 @@
#ifndef CONFIG_CPU_NUC932
#define EXTCLK 15000000
+#define UARTCLK 11313600
#else
#define EXTCLK 27000000
+#define UARTCLK 57139200
#endif
void nuc900_clk_enable(struct clk *clk, int enable);
diff --git a/arch/arm/mach-w90x900/cpu.h b/arch/arm/mach-w90x900/cpu.h
index 4493d4d..300e35b 100644
--- a/arch/arm/mach-w90x900/cpu.h
+++ b/arch/arm/mach-w90x900/cpu.h
@@ -30,7 +30,7 @@
.membase = name##_BA, \
.mapbase = name##_PA, \
.irq = IRQ_##name, \
- .uartclk = 11313600, \
+ .uartclk = UARTCLK, \
.regshift = 2, \
.iotype = UPIO_MEM, \
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \
diff --git a/arch/arm/mach-w90x900/mach-nuc932evb.c b/arch/arm/mach-w90x900/mach-nuc932evb.c
index bcc67d2..9f8a3f9 100644
--- a/arch/arm/mach-w90x900/mach-nuc932evb.c
+++ b/arch/arm/mach-w90x900/mach-nuc932evb.c
@@ -23,6 +23,7 @@ static void __init nuc932evb_map_io(void)
{
nuc932_map_io();
nuc932_init_clocks();
+ nuc932_init_uartclk();
}
static void __init nuc932evb_init(void)
diff --git a/arch/arm/mach-w90x900/nuc932.c b/arch/arm/mach-w90x900/nuc932.c
index 140fa2f..44b1347 100644
--- a/arch/arm/mach-w90x900/nuc932.c
+++ b/arch/arm/mach-w90x900/nuc932.c
@@ -80,6 +80,16 @@ void __init nuc932_map_io(void)
nuc900_map_io(nuc932evb_iodesc, ARRAY_SIZE(nuc932evb_iodesc));
}
+/*enable NUC932 uart clock*/
+
+void __init nuc932_init_uartclk(void)
+{
+ struct clk *ck_uart = clk_get(NULL, "uart");
+ BUG_ON(IS_ERR(ck_uart));
+
+ clk_enable(ck_uart);
+}
+
/*Init NUC932 clock*/
void __init nuc932_init_clocks(void)
diff --git a/arch/arm/mach-w90x900/nuc932.h b/arch/arm/mach-w90x900/nuc932.h
index 4cf1182..e0bafe7 100644
--- a/arch/arm/mach-w90x900/nuc932.h
+++ b/arch/arm/mach-w90x900/nuc932.h
@@ -26,3 +26,4 @@ extern struct sys_timer nuc900_timer;
extern void nuc932_board_init(void);
extern void nuc932_init_clocks(void);
extern void nuc932_map_io(void);
+extern void nuc932_init_uartclk(void);
--
1.5.6.3
More information about the linux-arm-kernel
mailing list