|
@@ -479,3 +479,83 @@ void __init omap4xxx_check_revision(void)
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case 0xb94e:
|
|
case 0xb94e:
|
|
|
|
+ switch (rev) {
|
|
|
|
+ case 0:
|
|
|
|
+ omap_revision = OMAP4460_REV_ES1_0;
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ default:
|
|
|
|
+ omap_revision = OMAP4460_REV_ES1_1;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 0xb975:
|
|
|
|
+ switch (rev) {
|
|
|
|
+ case 0:
|
|
|
|
+ default:
|
|
|
|
+ omap_revision = OMAP4470_REV_ES1_0;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ /* Unknown default to latest silicon rev as default */
|
|
|
|
+ omap_revision = OMAP4430_REV_ES2_3;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16,
|
|
|
|
+ ((omap_rev() >> 12) & 0xf), ((omap_rev() >> 8) & 0xf));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void __init omap5xxx_check_revision(void)
|
|
|
|
+{
|
|
|
|
+ u32 idcode;
|
|
|
|
+ u16 hawkeye;
|
|
|
|
+ u8 rev;
|
|
|
|
+
|
|
|
|
+ idcode = read_tap_reg(OMAP_TAP_IDCODE);
|
|
|
|
+ hawkeye = (idcode >> 12) & 0xffff;
|
|
|
|
+ rev = (idcode >> 28) & 0xff;
|
|
|
|
+ switch (hawkeye) {
|
|
|
|
+ case 0xb942:
|
|
|
|
+ switch (rev) {
|
|
|
|
+ case 0:
|
|
|
|
+ default:
|
|
|
|
+ omap_revision = OMAP5430_REV_ES1_0;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case 0xb998:
|
|
|
|
+ switch (rev) {
|
|
|
|
+ case 0:
|
|
|
|
+ default:
|
|
|
|
+ omap_revision = OMAP5432_REV_ES1_0;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ default:
|
|
|
|
+ /* Unknown default to latest silicon rev as default*/
|
|
|
|
+ omap_revision = OMAP5430_REV_ES1_0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pr_info("OMAP%04x ES%d.0\n",
|
|
|
|
+ omap_rev() >> 16, ((omap_rev() >> 12) & 0xf));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Set up things for map_io and processor detection later on. Gets called
|
|
|
|
+ * pretty much first thing from board init. For multi-omap, this gets
|
|
|
|
+ * cpu_is_omapxxxx() working accurately enough for map_io. Then we'll try to
|
|
|
|
+ * detect the exact revision later on in omap2_detect_revision() once map_io
|
|
|
|
+ * is done.
|
|
|
|
+ */
|
|
|
|
+void __init omap2_set_globals_tap(u32 class, void __iomem *tap)
|
|
|
|
+{
|
|
|
|
+ omap_revision = class;
|
|
|
|
+ tap_base = tap;
|
|
|
|
+
|
|
|
|
+ /* XXX What is this intended to do? */
|
|
|
|
+ if (cpu_is_omap34xx())
|
|
|
|
+ tap_prod_id = 0x0210;
|
|
|
|
+ else
|
|
|
|
+ tap_prod_id = 0x0208;
|
|
|
|
+}
|