Skip to content

Commit

Permalink
ARM: OMAP4: ID: Improve features detection and check
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ivan Khoronzhuk authored and Tony Lindgren committed Nov 14, 2012
1 parent 0b4b61c commit 42a1cc9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 24 deletions.
25 changes: 7 additions & 18 deletions arch/arm/mach-omap2/id.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down
8 changes: 2 additions & 6 deletions arch/arm/mach-omap2/soc.h
Original file line number Diff line number Diff line change
Expand Up @@ -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) \
Expand Down Expand Up @@ -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__ */

0 comments on commit 42a1cc9

Please sign in to comment.