arm: omap: Fix 'get_device_type()' for OMAP34XX
authorDerald D. Woods <woods.technical@gmail.com>
Mon, 31 Jul 2017 12:41:40 +0000 (07:41 -0500)
committerTom Rini <trini@konsulko.com>
Sat, 12 Aug 2017 22:56:26 +0000 (18:56 -0400)
Fixes: 00bbe96ebabb ("arm: omap: Unify get_device_type() function")
The control status register value is embedded in a structure somewhere
in SRAM, with the last refactoring effort. This patch allows OMAP3 EVM
(TMDSEVM3530) to boot again using the known control register base and
offset for 'readl', for the OMAP34XX case.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
[trini: Change to if/else, add comment about it.]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/mach-omap2/sysinfo-common.c

index 1dc7051ab3c6668ec1b4c35044bb8f91d12fdd85..4dab12a8d7bc6473854380a0f630afb8aa09ded0 100644 (file)
  */
 u32 get_device_type(void)
 {
+#if defined(CONFIG_OMAP34XX)
+       /*
+        * On OMAP3 systems we call this early enough that we must just
+        * use the direct offset for safety.
+        */
+       return (readl(OMAP34XX_CTRL_BASE + 0x2f0) & DEVICE_TYPE_MASK) >>
+               DEVICE_TYPE_SHIFT;
+#else
        return (readl((*ctrl)->control_status) & DEVICE_TYPE_MASK) >>
                DEVICE_TYPE_SHIFT;
+#endif
 }