|
@@ -23,21 +23,9 @@
|
|
|
#include <linux/io.h>
|
|
|
#endif
|
|
|
#include <asm/mach-types.h>
|
|
|
+#include <mach/digctl.h>
|
|
|
#include <mach/hardware.h>
|
|
|
|
|
|
-/*
|
|
|
- * MXS CPU types
|
|
|
- */
|
|
|
-#define cpu_is_mx23() ( \
|
|
|
- machine_is_mx23evk() || \
|
|
|
- machine_is_stmp378x() || \
|
|
|
- 0)
|
|
|
-#define cpu_is_mx28() ( \
|
|
|
- machine_is_mx28evk() || \
|
|
|
- machine_is_m28evk() || \
|
|
|
- machine_is_tx28() || \
|
|
|
- 0)
|
|
|
-
|
|
|
/*
|
|
|
* IO addresses common to MXS-based
|
|
|
*/
|
|
@@ -109,6 +97,21 @@ static inline void __mxs_togl(u32 mask, void __iomem *reg)
|
|
|
{
|
|
|
__raw_writel(mask, reg + MXS_TOG_ADDR);
|
|
|
}
|
|
|
+
|
|
|
+/*
|
|
|
+ * MXS CPU types
|
|
|
+ */
|
|
|
+#define MXS_CHIPID (MXS_IO_ADDRESS(MXS_DIGCTL_BASE_ADDR) + HW_DIGCTL_CHIPID)
|
|
|
+
|
|
|
+static inline int cpu_is_mx23(void)
|
|
|
+{
|
|
|
+ return ((__raw_readl(MXS_CHIPID) >> 16) == 0x3780);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int cpu_is_mx28(void)
|
|
|
+{
|
|
|
+ return ((__raw_readl(MXS_CHIPID) >> 16) == 0x2800);
|
|
|
+}
|
|
|
#endif
|
|
|
|
|
|
#endif /* __MACH_MXS_H__ */
|