Commit b23170c01f6e4ea043df7cd9486c2488e01f3d60
Committed by
Russell King
1 parent
7a2b94bc39
[ARM] pxa: introduce cpu_is_pxaXXX macros
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Showing 2 changed files with 38 additions and 4 deletions Side-by-side Diff
arch/arm/mach-pxa/generic.c
... | ... | @@ -448,16 +448,14 @@ |
448 | 448 | |
449 | 449 | static int __init pxa_init(void) |
450 | 450 | { |
451 | - int cpuid, ret; | |
451 | + int ret; | |
452 | 452 | |
453 | 453 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); |
454 | 454 | if (ret) |
455 | 455 | return ret; |
456 | 456 | |
457 | 457 | /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ |
458 | - cpuid = read_cpuid(CPUID_ID); | |
459 | - if (((cpuid >> 4) & 0xfff) == 0x2d0 || | |
460 | - ((cpuid >> 4) & 0xfff) == 0x290) | |
458 | + if (cpu_is_pxa25x()) | |
461 | 459 | ret = platform_device_register(&hwuart_device); |
462 | 460 | |
463 | 461 | return ret; |
include/asm-arm/arch-pxa/hardware.h
... | ... | @@ -62,6 +62,42 @@ |
62 | 62 | |
63 | 63 | #ifndef __ASSEMBLY__ |
64 | 64 | |
65 | +#define __cpu_is_pxa21x(id) \ | |
66 | + ({ \ | |
67 | + unsigned int _id = (id) >> 4 & 0xf3f; \ | |
68 | + _id == 0x212; \ | |
69 | + }) | |
70 | + | |
71 | +#define __cpu_is_pxa25x(id) \ | |
72 | + ({ \ | |
73 | + unsigned int _id = (id) >> 4 & 0xfff; \ | |
74 | + _id == 0x2d0 || _id == 0x290; \ | |
75 | + }) | |
76 | + | |
77 | +#define __cpu_is_pxa27x(id) \ | |
78 | + ({ \ | |
79 | + unsigned int _id = (id) >> 4 & 0xfff; \ | |
80 | + _id == 0x411; \ | |
81 | + }) | |
82 | + | |
83 | +#define cpu_is_pxa21x() \ | |
84 | + ({ \ | |
85 | + unsigned int id = read_cpuid(CPUID_ID); \ | |
86 | + __cpu_is_pxa21x(id); \ | |
87 | + }) | |
88 | + | |
89 | +#define cpu_is_pxa25x() \ | |
90 | + ({ \ | |
91 | + unsigned int id = read_cpuid(CPUID_ID); \ | |
92 | + __cpu_is_pxa25x(id); \ | |
93 | + }) | |
94 | + | |
95 | +#define cpu_is_pxa27x() \ | |
96 | + ({ \ | |
97 | + unsigned int id = read_cpuid(CPUID_ID); \ | |
98 | + __cpu_is_pxa27x(id); \ | |
99 | + }) | |
100 | + | |
65 | 101 | /* |
66 | 102 | * Handy routine to set GPIO alternate functions |
67 | 103 | */ |