@ -22,6 +22,7 @@
# include <common.h>
# include <command.h>
# include <i2c.h>
# include <asm/arch/cpu.h>
# include <asm/arch/kirkwood.h>
# include <asm/arch/mpp.h>
@ -92,8 +93,59 @@ int board_init(void)
}
# if defined(CONFIG_MISC_INIT_R)
# if defined(CONFIG_CMD_I2C) && defined(CONFIG_SYS_I2C_G762_ADDR)
/*
* Start I2C fan ( GMT G762 controller )
*/
static void init_fan ( void )
{
u8 data ;
i2c_set_bus_num ( 0 ) ;
/* Enable open-loop and PWM modes */
data = 0x20 ;
if ( i2c_write ( CONFIG_SYS_I2C_G762_ADDR ,
G762_REG_FAN_CMD1 , 1 , & data , 1 ) ! = 0 )
goto err ;
data = 0 ;
if ( i2c_write ( CONFIG_SYS_I2C_G762_ADDR ,
G762_REG_SET_CNT , 1 , & data , 1 ) ! = 0 )
goto err ;
/*
* RPM to PWM ( set_out register ) fan speed conversion array :
* 0 0x00
* 1500 0x04
* 2800 0x08
* 3400 0x0C
* 3700 0x10
* 4400 0x20
* 4700 0x30
* 4800 0x50
* 5200 0x80
* 5400 0xC0
* 5500 0xFF
*
* Start fan at low speed ( 2800 RPM ) :
*/
data = 0x08 ;
if ( i2c_write ( CONFIG_SYS_I2C_G762_ADDR ,
G762_REG_SET_OUT , 1 , & data , 1 ) ! = 0 )
goto err ;
return ;
err :
printf ( " Error: failed to start I2C fan @%02x \n " ,
CONFIG_SYS_I2C_G762_ADDR ) ;
}
# else
static void init_fan ( void ) { }
# endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_G762_ADDR */
int misc_init_r ( void )
{
init_fan ( ) ;
# if defined(CONFIG_CMD_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR)
if ( ! getenv ( " ethaddr " ) ) {
uchar mac [ 6 ] ;
@ -103,7 +155,7 @@ int misc_init_r(void)
# endif
return 0 ;
}
# endif
# endif /* CONFIG_MISC_INIT_R */
# if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
/* Configure and initialize PHY */