/* how many bytes we allow into the FIFO at a time in FIFO mode */
 #define FIFO_MAX        (14)
 
+static inline int is_arm926(void)
+{
+       unsigned int cpuid;
+
+       asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r" (cpuid));
+
+       return ((cpuid & 0xff0) == 0x260);
+}
+
 static void arch_detect_cpu(void)
 {
        unsigned int cpuid;
        cpuid = *((volatile unsigned int *)S3C2410_GSTATUS1);
        cpuid &= S3C2410_GSTATUS1_IDMASK;
 
-       if (cpuid == S3C2410_GSTATUS1_2440 ||
+       if (is_arm926() || cpuid == S3C2410_GSTATUS1_2440 ||
            cpuid == S3C2410_GSTATUS1_2442) {
                fifo_mask = S3C2440_UFSTAT_TXMASK;
                fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT;