xref: /rk3399_rockchip-uboot/arch/arm/mach-omap2/sysinfo-common.c (revision da0227f7d2568c0cb0e435ed3caf780f9846d9a0)
100bbe96eSSemen Protsenko /*
200bbe96eSSemen Protsenko  * System information routines for all OMAP based boards.
300bbe96eSSemen Protsenko  *
400bbe96eSSemen Protsenko  * (C) Copyright 2017 Linaro Ltd.
500bbe96eSSemen Protsenko  * Sam Protsenko <semen.protsenko@linaro.org>
600bbe96eSSemen Protsenko  *
700bbe96eSSemen Protsenko  * SPDX-License-Identifier:	GPL-2.0+
800bbe96eSSemen Protsenko  */
900bbe96eSSemen Protsenko 
1000bbe96eSSemen Protsenko #include <asm/arch/omap.h>
1100bbe96eSSemen Protsenko #include <asm/io.h>
1200bbe96eSSemen Protsenko #include <asm/omap_common.h>
1300bbe96eSSemen Protsenko 
1400bbe96eSSemen Protsenko /**
1500bbe96eSSemen Protsenko  * Tell if device is GP/HS/EMU/TST.
1600bbe96eSSemen Protsenko  */
get_device_type(void)1700bbe96eSSemen Protsenko u32 get_device_type(void)
1800bbe96eSSemen Protsenko {
19*da0227f7SDerald D. Woods #if defined(CONFIG_OMAP34XX)
20*da0227f7SDerald D. Woods 	/*
21*da0227f7SDerald D. Woods 	 * On OMAP3 systems we call this early enough that we must just
22*da0227f7SDerald D. Woods 	 * use the direct offset for safety.
23*da0227f7SDerald D. Woods 	 */
24*da0227f7SDerald D. Woods 	return (readl(OMAP34XX_CTRL_BASE + 0x2f0) & DEVICE_TYPE_MASK) >>
25*da0227f7SDerald D. Woods 		DEVICE_TYPE_SHIFT;
26*da0227f7SDerald D. Woods #else
2700bbe96eSSemen Protsenko 	return (readl((*ctrl)->control_status) & DEVICE_TYPE_MASK) >>
2800bbe96eSSemen Protsenko 		DEVICE_TYPE_SHIFT;
29*da0227f7SDerald D. Woods #endif
3000bbe96eSSemen Protsenko }
31