aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Molton <spyro@f2s.com>2008-06-25 17:17:16 -0400
committerIan Molton <spyro@f2s.com>2008-07-10 05:28:36 -0400
commitaa9ae8eb1a917c8794bceef0a8e6ff1f4d7c46de (patch)
treed3628cce8f72609640c952f4eeddc19a464a6141
parentc0b8556f2f8146bd38324b14b1ce00f249ba8ed9 (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.c4
-rw-r--r--include/asm-arm/arch-pxa/hardware.h12
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()); \