blob: 4dab12a8d7bc6473854380a0f630afb8aa09ded0 [file] [log] [blame]
Semen Protsenko00bbe962017-06-02 18:00:00 +03001/*
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 */
17u32 get_device_type(void)
18{
Derald D. Woodsda0227f2017-07-31 07:41:40 -050019#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
Semen Protsenko00bbe962017-06-02 18:00:00 +030027 return (readl((*ctrl)->control_status) & DEVICE_TYPE_MASK) >>
28 DEVICE_TYPE_SHIFT;
Derald D. Woodsda0227f2017-07-31 07:41:40 -050029#endif
Semen Protsenko00bbe962017-06-02 18:00:00 +030030}