Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm/mach-imx/cpu-imx25.c
26292 views
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
* MX25 CPU type detection
4
*
5
* Copyright (c) 2009 Daniel Mack <[email protected]>
6
* Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved
7
*/
8
#include <linux/module.h>
9
#include <linux/io.h>
10
#include <linux/of.h>
11
#include <linux/of_address.h>
12
13
#include "iim.h"
14
#include "hardware.h"
15
16
static int mx25_cpu_rev = -1;
17
18
static int mx25_read_cpu_rev(void)
19
{
20
u32 rev;
21
void __iomem *iim_base;
22
struct device_node *np;
23
24
np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim");
25
iim_base = of_iomap(np, 0);
26
of_node_put(np);
27
BUG_ON(!iim_base);
28
rev = readl(iim_base + MXC_IIMSREV);
29
iounmap(iim_base);
30
31
switch (rev) {
32
case 0x00:
33
return IMX_CHIP_REVISION_1_0;
34
case 0x01:
35
return IMX_CHIP_REVISION_1_1;
36
case 0x02:
37
return IMX_CHIP_REVISION_1_2;
38
default:
39
return IMX_CHIP_REVISION_UNKNOWN;
40
}
41
}
42
43
int mx25_revision(void)
44
{
45
if (mx25_cpu_rev == -1)
46
mx25_cpu_rev = mx25_read_cpu_rev();
47
48
return mx25_cpu_rev;
49
}
50
EXPORT_SYMBOL(mx25_revision);
51
52