aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerald D. Woods <woods.technical@gmail.com>2017-07-31 07:41:40 -0500
committerTom Rini <trini@konsulko.com>2017-08-12 18:56:26 -0400
commitda0227f7d2568c0cb0e435ed3caf780f9846d9a0 (patch)
tree9f16f9856271f79f6a843056e7e218fc9a937c4d
parent5bbc265becbec9ce1e489760eb34922ac8c0bed9 (diff)
downloadu-boot-da0227f7d2568c0cb0e435ed3caf780f9846d9a0.zip
u-boot-da0227f7d2568c0cb0e435ed3caf780f9846d9a0.tar.gz
u-boot-da0227f7d2568c0cb0e435ed3caf780f9846d9a0.tar.bz2
arm: omap: Fix 'get_device_type()' for OMAP34XX
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>
-rw-r--r--arch/arm/mach-omap2/sysinfo-common.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/sysinfo-common.c b/arch/arm/mach-omap2/sysinfo-common.c
index 1dc7051..4dab12a 100644
--- a/arch/arm/mach-omap2/sysinfo-common.c
+++ b/arch/arm/mach-omap2/sysinfo-common.c
@@ -16,6 +16,15 @@
*/
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
}