diff options
author | Ye Li <ye.li@nxp.com> | 2018-09-03 00:46:09 -0700 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2018-09-04 01:57:19 -0700 |
commit | 11a44009a6d301df30ecda4209e79906a36a0981 (patch) | |
tree | a274b70114371de763683b5088d5f67c35ba0718 /arch | |
parent | b3552a40e825094635b3a152fa9f4466fc311925 (diff) |
MLK-19433-2 imx8mq: Get chip rev for B1 revision
The mscale B1 uses OCOTP_HW_OCOTP_READ_FUSE_DATA register for chip id.
It returns a magic number 0xff0055aa.
Update get_cpu_rev to support this way, also enable OCOTP clock to allow
access OCOTP register.
Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 866631c2140b9352c6f74ec36d1a51fea40c0445)
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-imx/imx8m/clock_imx8mq.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx8m/soc.c | 18 |
2 files changed, 13 insertions, 6 deletions
diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c b/arch/arm/mach-imx/imx8m/clock_imx8mq.c index 207abc66fb..f2e58e07b3 100644 --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c @@ -772,6 +772,7 @@ int clock_init(void) init_wdog_clk(); clock_enable(CCGR_TSENSOR, 1); + clock_enable(CCGR_OCOTP, 1); return 0; } diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index f22ca383a4..2fcbc0b323 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -161,13 +161,19 @@ u32 get_cpu_rev(void) if (reg == CHIP_REV_1_0) { /* * For B0 chip, the DIGPROG is not updated, still TO1.0. - * we have to check ROM version further + * we have to check ROM version or OCOTP_READ_FUSE_DATA */ - rom_version = readl((void __iomem *)ROM_VERSION_A0); - if (rom_version != CHIP_REV_1_0) { - rom_version = readl((void __iomem *)ROM_VERSION_B0); - if (rom_version >= CHIP_REV_2_0) - reg = CHIP_REV_2_0; + if (readl((void __iomem *)(OCOTP_BASE_ADDR + 0x40)) + == 0xff0055aa) { + /* 0xff0055aa is magic number for B1 */ + reg = CHIP_REV_2_1; + } else { + rom_version = readl((void __iomem *)ROM_VERSION_A0); + if (rom_version != CHIP_REV_1_0) { + rom_version = readl((void __iomem *)ROM_VERSION_B0); + if (rom_version == CHIP_REV_2_0) + reg = CHIP_REV_2_0; + } } } |