summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/sysinfo-common.c
blob: 49bc3a634fb8f386b69246e23a3c5e12a5ec29d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// SPDX-License-Identifier: GPL-2.0+
/*
 * System information routines for all OMAP based boards.
 *
 * (C) Copyright 2017 Linaro Ltd.
 * Sam Protsenko <semen.protsenko@linaro.org>
 */

#include <asm/arch/omap.h>
#include <asm/io.h>
#include <asm/omap_common.h>

/**
 * Tell if device is GP/HS/EMU/TST.
 */
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
}