diff options
author | Ian Molton <spyro@f2s.com> | 2008-06-25 17:17:16 -0400 |
---|---|---|
committer | Ian Molton <spyro@f2s.com> | 2008-07-10 05:28:36 -0400 |
commit | aa9ae8eb1a917c8794bceef0a8e6ff1f4d7c46de (patch) | |
tree | d3628cce8f72609640c952f4eeddc19a464a6141 | |
parent | c0b8556f2f8146bd38324b14b1ce00f249ba8ed9 (diff) |
Fix serial broken-ness on PXA250
PXA255 and 26x are the only PXA CPUs with HWUART. This patch prevents bogus
initialisation on other models.
Signed-off-by: Ian Molton <spyro@f2s.com>
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 4 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/hardware.h | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index 4cd50e3005e9..90b441f5df5a 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -293,7 +293,7 @@ static int __init pxa25x_init(void) | |||
293 | int i, ret = 0; | 293 | int i, ret = 0; |
294 | 294 | ||
295 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ | 295 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ |
296 | if (cpu_is_pxa25x()) | 296 | if (cpu_is_pxa255()) |
297 | clks_register(&pxa25x_hwuart_clk, 1); | 297 | clks_register(&pxa25x_hwuart_clk, 1); |
298 | 298 | ||
299 | if (cpu_is_pxa21x() || cpu_is_pxa25x()) { | 299 | if (cpu_is_pxa21x() || cpu_is_pxa25x()) { |
@@ -317,7 +317,7 @@ static int __init pxa25x_init(void) | |||
317 | } | 317 | } |
318 | 318 | ||
319 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ | 319 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ |
320 | if (cpu_is_pxa25x()) | 320 | if (cpu_is_pxa255()) |
321 | ret = platform_device_register(&pxa_device_hwuart); | 321 | ret = platform_device_register(&pxa_device_hwuart); |
322 | 322 | ||
323 | clks_register(&gpio7_clk, 1); | 323 | clks_register(&gpio7_clk, 1); |
diff --git a/include/asm-arm/arch-pxa/hardware.h b/include/asm-arm/arch-pxa/hardware.h index d9af6dabc899..b6a8317c2ec4 100644 --- a/include/asm-arm/arch-pxa/hardware.h +++ b/include/asm-arm/arch-pxa/hardware.h | |||
@@ -69,6 +69,12 @@ | |||
69 | _id == 0x212; \ | 69 | _id == 0x212; \ |
70 | }) | 70 | }) |
71 | 71 | ||
72 | #define __cpu_is_pxa255(id) \ | ||
73 | ({ \ | ||
74 | unsigned int _id = (id) >> 4 & 0xfff; \ | ||
75 | _id == 0x2d0; \ | ||
76 | }) | ||
77 | |||
72 | #define __cpu_is_pxa25x(id) \ | 78 | #define __cpu_is_pxa25x(id) \ |
73 | ({ \ | 79 | ({ \ |
74 | unsigned int _id = (id) >> 4 & 0xfff; \ | 80 | unsigned int _id = (id) >> 4 & 0xfff; \ |
@@ -76,6 +82,7 @@ | |||
76 | }) | 82 | }) |
77 | #else | 83 | #else |
78 | #define __cpu_is_pxa21x(id) (0) | 84 | #define __cpu_is_pxa21x(id) (0) |
85 | #define __cpu_is_pxa255(id) (0) | ||
79 | #define __cpu_is_pxa25x(id) (0) | 86 | #define __cpu_is_pxa25x(id) (0) |
80 | #endif | 87 | #endif |
81 | 88 | ||
@@ -124,6 +131,11 @@ | |||
124 | __cpu_is_pxa21x(read_cpuid_id()); \ | 131 | __cpu_is_pxa21x(read_cpuid_id()); \ |
125 | }) | 132 | }) |
126 | 133 | ||
134 | #define cpu_is_pxa255() \ | ||
135 | ({ \ | ||
136 | __cpu_is_pxa255(read_cpuid_id()); \ | ||
137 | }) | ||
138 | |||
127 | #define cpu_is_pxa25x() \ | 139 | #define cpu_is_pxa25x() \ |
128 | ({ \ | 140 | ({ \ |
129 | __cpu_is_pxa25x(read_cpuid_id()); \ | 141 | __cpu_is_pxa25x(read_cpuid_id()); \ |