imx: mxs: reimplement get_cpu_rev

Rewrite get_cpu_rev, from "static const char *get_cpu_rev(void)" to
"u32 get_cpu_rev(void)". To align with get_cpu_rev of other i.MXes.

Also write get_imx_type to replace get_cpu_type, since we have
macro named get_cpu_type.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Peng Fan 2015-08-13 10:55:33 +08:00 committed by Stefano Babic
parent 2af896abf6
commit bf3b9cb6e8
2 changed files with 25 additions and 28 deletions

View File

@ -132,23 +132,7 @@ int arch_cpu_init(void)
return 0;
}
#if defined(CONFIG_DISPLAY_CPUINFO)
static const char *get_cpu_type(void)
{
struct mxs_digctl_regs *digctl_regs =
(struct mxs_digctl_regs *)MXS_DIGCTL_BASE;
switch (readl(&digctl_regs->hw_digctl_chipid) & HW_DIGCTL_CHIPID_MASK) {
case HW_DIGCTL_CHIPID_MX23:
return "23";
case HW_DIGCTL_CHIPID_MX28:
return "28";
default:
return "??";
}
}
static const char *get_cpu_rev(void)
u32 get_cpu_rev(void)
{
struct mxs_digctl_regs *digctl_regs =
(struct mxs_digctl_regs *)MXS_DIGCTL_BASE;
@ -158,25 +142,34 @@ static const char *get_cpu_rev(void)
case HW_DIGCTL_CHIPID_MX23:
switch (rev) {
case 0x0:
return "1.0";
case 0x1:
return "1.1";
case 0x2:
return "1.2";
case 0x3:
return "1.3";
case 0x4:
return "1.4";
return (MXC_CPU_MX23 << 12) | (rev + 0x10);
default:
return "??";
return 0;
}
case HW_DIGCTL_CHIPID_MX28:
switch (rev) {
case 0x1:
return "1.2";
return (MXC_CPU_MX28 << 12) | 0x12;
default:
return "??";
return 0;
}
default:
return 0;
}
}
#if defined(CONFIG_DISPLAY_CPUINFO)
const char *get_imx_type(u32 imxtype)
{
switch (imxtype) {
case MXC_CPU_MX23:
return "23"; /* Quad-Plus version of the mx6 */
case MXC_CPU_MX28:
return "28"; /* Dual-Plus version of the mx6 */
default:
return "??";
}
@ -184,12 +177,15 @@ static const char *get_cpu_rev(void)
int print_cpuinfo(void)
{
u32 cpurev;
struct mxs_spl_data *data = (struct mxs_spl_data *)
((CONFIG_SYS_TEXT_BASE - sizeof(struct mxs_spl_data)) & ~0xf);
printf("CPU: Freescale i.MX%s rev%s at %d MHz\n",
get_cpu_type(),
get_cpu_rev(),
cpurev = get_cpu_rev();
printf("CPU: Freescale i.MX%s rev%d.%d at %d MHz\n",
get_imx_type((cpurev & 0xFF000) >> 12),
(cpurev & 0x000F0) >> 4,
(cpurev & 0x0000F) >> 0,
mxc_get_clock(MXC_ARM_CLK) / 1000000);
printf("BOOT: %s\n", mxs_boot_modes[data->boot_mode_idx].mode);
return 0;

View File

@ -11,6 +11,7 @@
#define __SYS_PROTO_H__
#include <asm/imx-common/regs-common.h>
#include <../arch-imx/cpu.h>
int mxs_reset_block(struct mxs_register_32 *reg);
int mxs_wait_mask_set(struct mxs_register_32 *reg,