mx6: Fix get_board_rev() for the mx6 solo case

When booting a Freescale kernel 3.0.35 on a Wandboard solo, the get_board_rev()
returns 0x62xxx, which is not a value understood by the VPU
(Video Processing Unit) library in the kernel and causes the video playback to
fail.

The expected values for get_board_rev are:
0x63xxx: For mx6quad/dual
0x61xxx: For mx6dual-lite/solo

So adjust get_board_rev() accordingly and make it as weak function, so that we
do not need to define it in every mx6 board file.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
Acked-by: Eric Nelson <eric.nelson@boundarydevices.com>
This commit is contained in:
Fabio Estevam 2013-03-27 07:36:55 +00:00 committed by Stefano Babic
parent 50cea244fe
commit 38e7007725
5 changed files with 12 additions and 20 deletions

View File

@ -61,6 +61,18 @@ u32 get_cpu_rev(void)
return (type << 12) | (reg + 0x10);
}
#ifdef CONFIG_REVISION_TAG
u32 __weak get_board_rev(void)
{
u32 cpurev = get_cpu_rev();
u32 type = ((cpurev >> 12) & 0xff);
if (type == MXC_CPU_MX6SOLO)
cpurev = (MXC_CPU_MX6DL) << 12 | (cpurev & 0xFFF);
return cpurev;
}
#endif
void init_aips(void)
{
struct aipstz_regs *aips1, *aips2;

View File

@ -331,11 +331,6 @@ int board_mmc_init(bd_t *bis)
}
#endif
u32 get_board_rev(void)
{
return 0x63000;
}
#ifdef CONFIG_MXC_SPI
iomux_v3_cfg_t const ecspi1_pads[] = {
/* SS1 */

View File

@ -301,11 +301,6 @@ int board_mmc_init(bd_t *bis)
}
#endif
u32 get_board_rev(void)
{
return 0x63000 ;
}
#ifdef CONFIG_MXC_SPI
iomux_v3_cfg_t const ecspi1_pads[] = {
/* SS1 */

View File

@ -254,11 +254,6 @@ int board_eth_init(bd_t *bis)
return 0;
}
u32 get_board_rev(void)
{
return 0x63000;
}
int board_early_init_f(void)
{
setup_iomux_uart();

View File

@ -170,11 +170,6 @@ int board_init(void)
return 0;
}
u32 get_board_rev(void)
{
return get_cpu_rev();
}
int checkboard(void)
{
puts("Board: Wandboard\n");