imx: cpu: add cpu speed/grade for i.MX8M

Use more general enum types for speed grade.
Refine get_cpu_speed_grade_hz to support i.MX8M.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Peng Fan 2018-01-10 13:20:30 +08:00 committed by Stefano Babic
parent 423e84bc72
commit e56d9d79e5

View File

@ -333,16 +333,18 @@ void set_chipselect_size(int const cs_size)
} }
#endif #endif
#if defined(CONFIG_MX7) #if defined(CONFIG_MX7) || defined(CONFIG_MX8M)
/* /*
* OCOTP_TESTER3[9:8] (see Fusemap Description Table offset 0x440) * OCOTP_TESTER3[9:8] (see Fusemap Description Table offset 0x440)
* defines a 2-bit SPEED_GRADING * defines a 2-bit SPEED_GRADING
*/ */
#define OCOTP_TESTER3_SPEED_SHIFT 8 #define OCOTP_TESTER3_SPEED_SHIFT 8
#define OCOTP_TESTER3_SPEED_800MHZ 0 enum cpu_speed {
#define OCOTP_TESTER3_SPEED_500MHZ 1 OCOTP_TESTER3_SPEED_GRADE0,
#define OCOTP_TESTER3_SPEED_1GHZ 2 OCOTP_TESTER3_SPEED_GRADE1,
#define OCOTP_TESTER3_SPEED_1P2GHZ 3 OCOTP_TESTER3_SPEED_GRADE2,
OCOTP_TESTER3_SPEED_GRADE3,
};
u32 get_cpu_speed_grade_hz(void) u32 get_cpu_speed_grade_hz(void)
{ {
@ -357,15 +359,16 @@ u32 get_cpu_speed_grade_hz(void)
val &= 0x3; val &= 0x3;
switch(val) { switch(val) {
case OCOTP_TESTER3_SPEED_800MHZ: case OCOTP_TESTER3_SPEED_GRADE0:
return 800000000; return 800000000;
case OCOTP_TESTER3_SPEED_500MHZ: case OCOTP_TESTER3_SPEED_GRADE1:
return 500000000; return is_mx7() ? 500000000 : 1000000000;
case OCOTP_TESTER3_SPEED_1GHZ: case OCOTP_TESTER3_SPEED_GRADE2:
return 1000000000; return is_mx7() ? 1000000000 : 1300000000;
case OCOTP_TESTER3_SPEED_1P2GHZ: case OCOTP_TESTER3_SPEED_GRADE3:
return 1200000000; return is_mx7() ? 1200000000 : 1500000000;
} }
return 0; return 0;
} }