2009-12-02 13:58:27

by Wan ZongShun

[permalink] [raw]
Subject: [PATCH 4/4]ARM: NUC900: enable uart support for nuc932

Dear Russell,

This patch enables uart support for nuc932.

Signed-off-by: Wan ZongShun <[email protected]>

---
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


2009-12-03 19:41:40

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH 4/4]ARM: NUC900: enable uart support for nuc932

On Wed, Dec 02, 2009 at 09:58:25PM +0800, Wan ZongShun wrote:
> 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

As far as I can see, these are the only thing which prevent a single
kernel being built to cover both NUC900 and NUC932.

Can we make their selection something which is done at runtime instead
of compile time? This comments goes for patch 5837/1 in the patch
system as well.

2009-12-04 14:20:47

by Wan ZongShun

[permalink] [raw]
Subject: Re: [PATCH 4/4]ARM: NUC900: enable uart support for nuc932

2009/12/4 Russell King - ARM Linux <[email protected]>:
> On Wed, Dec 02, 2009 at 09:58:25PM +0800, Wan ZongShun wrote:
>> 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
>
> As far as I can see, these are the only thing which prevent a single
> kernel being built to cover both NUC900 and NUC932.
>
> Can we make their selection something which is done at runtime instead
> of compile time?  This comments goes for patch 5837/1 in the patch
> system as well.
>
Do you mean that I should use following form instead?

"if (machine_is_nuc932evb())"
code....


--
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel