MLK-20574 imx8mm: Support 3bits SPEED_GRADE fuse
The imx8mm new fuse map uses 3bits SPEED_GRADE and add 2Ghz speed.
SPEED SPEED_GRADE
2000 ’100’
1800 ’011’
1600 ’010’
1200 ’001’
800 ’000’
Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit d747d5e2d055b1191166f5bf3395f7933023b323)
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index 01e0081..4c2780e 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -413,6 +413,7 @@
OCOTP_TESTER3_SPEED_GRADE1,
OCOTP_TESTER3_SPEED_GRADE2,
OCOTP_TESTER3_SPEED_GRADE3,
+ OCOTP_TESTER3_SPEED_GRADE4,
};
u32 get_cpu_speed_grade_hz(void)
@@ -425,7 +426,10 @@
val = readl(&fuse->tester3);
val >>= OCOTP_TESTER3_SPEED_SHIFT;
- val &= 0x3;
+ if (is_imx8mm())
+ val &= 0x7;
+ else
+ val &= 0x3;
switch(val) {
case OCOTP_TESTER3_SPEED_GRADE0:
@@ -436,6 +440,8 @@
return (is_mx7() ? 1000000000 : (is_imx8mq() ? 1300000000 : 1600000000));
case OCOTP_TESTER3_SPEED_GRADE3:
return (is_mx7() ? 1200000000 : (is_imx8mq() ? 1500000000 : 1800000000));
+ case OCOTP_TESTER3_SPEED_GRADE4:
+ return 2000000000;
}
return 0;