ARM: OMAP4: ID: Improve features detection and check
authorIvan Khoronzhuk <ivan.khoronzhuk@ti.com>
Wed, 14 Nov 2012 20:10:37 +0000 (12:10 -0800)
committerTony Lindgren <tony@atomide.com>
Wed, 14 Nov 2012 20:10:37 +0000 (12:10 -0800)
Replaces several flags bearing the same meaning. There is no need
to set flags due to different omap types here, it can be checked
in appropriate places as well.

Cc: Tony Lindgren <tony@atomide.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-omap@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Nishanth Menon <nm@ti.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/soc.h

index cf2362c..3c47a19 100644 (file)
@@ -28,6 +28,9 @@
 #include "soc.h"
 #include "control.h"
 
+#define OMAP4_SILICON_TYPE_STANDARD            0x01
+#define OMAP4_SILICON_TYPE_PERFORMANCE         0x02
+
 static unsigned int omap_revision;
 static const char *cpu_rev;
 u32 omap_features;
@@ -273,25 +276,11 @@ void __init omap4xxx_check_features(void)
 {
        u32 si_type;
 
-       if (cpu_is_omap443x())
-               omap_features |= OMAP4_HAS_MPU_1GHZ;
-
+       si_type =
+       (read_tap_reg(OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1) >> 16) & 0x03;
 
-       if (cpu_is_omap446x()) {
-               si_type =
-                       read_tap_reg(OMAP4_CTRL_MODULE_CORE_STD_FUSE_PROD_ID_1);
-               switch ((si_type & (3 << 16)) >> 16) {
-               case 2:
-                       /* High performance device */
-                       omap_features |= OMAP4_HAS_MPU_1_5GHZ;
-                       break;
-               case 1:
-               default:
-                       /* Standard device */
-                       omap_features |= OMAP4_HAS_MPU_1_2GHZ;
-                       break;
-               }
-       }
+       if (si_type == OMAP4_SILICON_TYPE_PERFORMANCE)
+               omap_features = OMAP4_HAS_PERF_SILICON;
 }
 
 void __init ti81xx_check_features(void)
index 0700964..f31d907 100644 (file)
@@ -435,9 +435,7 @@ extern u32 omap_features;
 #define OMAP3_HAS_IO_WAKEUP            BIT(6)
 #define OMAP3_HAS_SDRC                 BIT(7)
 #define OMAP3_HAS_IO_CHAIN_CTRL                BIT(8)
-#define OMAP4_HAS_MPU_1GHZ             BIT(9)
-#define OMAP4_HAS_MPU_1_2GHZ           BIT(10)
-#define OMAP4_HAS_MPU_1_5GHZ           BIT(11)
+#define OMAP4_HAS_PERF_SILICON         BIT(9)
 
 
 #define OMAP3_HAS_FEATURE(feat,flag)                   \
@@ -465,9 +463,7 @@ static inline unsigned int omap4_has_ ##feat(void)  \
        return omap_features & OMAP4_HAS_ ##flag;       \
 }                                                      \
 
-OMAP4_HAS_FEATURE(mpu_1ghz, MPU_1GHZ)
-OMAP4_HAS_FEATURE(mpu_1_2ghz, MPU_1_2GHZ)
-OMAP4_HAS_FEATURE(mpu_1_5ghz, MPU_1_5GHZ)
+OMAP4_HAS_FEATURE(perf_silicon, PERF_SILICON)
 
 #endif /* __ASSEMBLY__ */