int i, ret = 0;
 
        /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */
-       if (cpu_is_pxa25x())
+       if (cpu_is_pxa255())
                clks_register(&pxa25x_hwuart_clk, 1);
 
        if (cpu_is_pxa21x() || cpu_is_pxa25x()) {
        }
 
        /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */
-       if (cpu_is_pxa25x())
+       if (cpu_is_pxa255())
                ret = platform_device_register(&pxa_device_hwuart);
 
        clks_register(&gpio7_clk, 1);
 
                _id == 0x212;                           \
        })
 
+#define __cpu_is_pxa255(id)                             \
+       ({                                              \
+               unsigned int _id = (id) >> 4 & 0xfff;   \
+               _id == 0x2d0;                           \
+        })
+
 #define __cpu_is_pxa25x(id)                            \
        ({                                              \
                unsigned int _id = (id) >> 4 & 0xfff;   \
        })
 #else
 #define __cpu_is_pxa21x(id)    (0)
+#define __cpu_is_pxa255(id)    (0)
 #define __cpu_is_pxa25x(id)    (0)
 #endif
 
                __cpu_is_pxa21x(read_cpuid_id());       \
        })
 
+#define cpu_is_pxa255()                                 \
+       ({                                              \
+               __cpu_is_pxa255(read_cpuid_id());       \
+       })
+
 #define cpu_is_pxa25x()                                        \
        ({                                              \
                __cpu_is_pxa25x(read_cpuid_id());       \