@ -138,18 +138,6 @@ void show_boot_progress(int progress)
}
# endif
static unsigned int read_asicid ( void )
{
unsigned int * address = ( void * ) U8500_BOOTROM_BASE
+ U8500_BOOTROM_ASIC_ID_OFFSET ;
return readl ( address ) ;
}
int cpu_is_u8500v11 ( void )
{
return read_asicid ( ) = = 0x008500A1 ;
}
/*
* Miscellaneous platform dependent initialisations
*/
@ -226,67 +214,6 @@ unsigned int addr_vall_arr[] = {
} ;
# ifdef CONFIG_BOARD_LATE_INIT
# ifdef CONFIG_MMC
# define LDO_VAUX3_MASK 0x3
# define LDO_VAUX3_ENABLE 0x1
# define VAUX3_VOLTAGE_2_9V 0xd
# define AB8500_REGU_CTRL2 0x4
# define AB8500_REGU_VRF1VAUX3_REGU_REG 0x040A
# define AB8500_REGU_VRF1VAUX3_SEL_REG 0x0421
static int hrefplus_mmc_power_init ( void )
{
int ret ;
int val ;
if ( ! cpu_is_u8500v11 ( ) )
return 0 ;
/*
* On v1 .1 HREF boards ( HREF + ) , Vaux3 needs to be enabled for the SD
* card to work . This is done by enabling the regulators in the AB8500
* via PRCMU I2C transactions .
*
* This code is derived from the handling of AB8500_LDO_VAUX3 in
* ab8500_ldo_enable ( ) and ab8500_ldo_disable ( ) in Linux .
*
* Turn off and delay is required to have it work across soft reboots .
*/
ret = prcmu_i2c_read ( AB8500_REGU_CTRL2 , AB8500_REGU_VRF1VAUX3_REGU_REG ) ;
if ( ret < 0 )
goto out ;
val = ret ;
/* Turn off */
ret = prcmu_i2c_write ( AB8500_REGU_CTRL2 , AB8500_REGU_VRF1VAUX3_REGU_REG ,
val & ~ LDO_VAUX3_MASK ) ;
if ( ret < 0 )
goto out ;
udelay ( 10 * 1000 ) ;
/* Set the voltage to 2.9V */
ret = prcmu_i2c_write ( AB8500_REGU_CTRL2 ,
AB8500_REGU_VRF1VAUX3_SEL_REG ,
VAUX3_VOLTAGE_2_9V ) ;
if ( ret < 0 )
goto out ;
val = val & ~ LDO_VAUX3_MASK ;
val = val | LDO_VAUX3_ENABLE ;
/* Turn on the supply */
ret = prcmu_i2c_write ( AB8500_REGU_CTRL2 ,
AB8500_REGU_VRF1VAUX3_REGU_REG , val ) ;
out :
return ret ;
}
# endif
/*
* called after all initialisation were done , but before the generic
* mmc_initialize ( ) .
@ -313,7 +240,7 @@ int board_late_init(void)
setenv ( " board_id " , " 1 " ) ;
}
# ifdef CONFIG_MMC
hrefplus _mmc_power_init( ) ;
u8500 _mmc_power_init( ) ;
/*
* config extended GPIO pins for level shifter and