1 /*
2  * System information routines for all OMAP based boards.
3  *
4  * (C) Copyright 2017 Linaro Ltd.
5  * Sam Protsenko <semen.protsenko@linaro.org>
6  *
7  * SPDX-License-Identifier:	GPL-2.0+
8  */
9 
10 #include <asm/arch/omap.h>
11 #include <asm/io.h>
12 #include <asm/omap_common.h>
13 
14 /**
15  * Tell if device is GP/HS/EMU/TST.
16  */
17 u32 get_device_type(void)
18 {
19 #if defined(CONFIG_OMAP34XX)
20 	/*
21 	 * On OMAP3 systems we call this early enough that we must just
22 	 * use the direct offset for safety.
23 	 */
24 	return (readl(OMAP34XX_CTRL_BASE + 0x2f0) & DEVICE_TYPE_MASK) >>
25 		DEVICE_TYPE_SHIFT;
26 #else
27 	return (readl((*ctrl)->control_status) & DEVICE_TYPE_MASK) >>
28 		DEVICE_TYPE_SHIFT;
29 #endif
30 }
31