@ -30,6 +30,36 @@
static unsigned long sensor_initialized ;
static void _initialize_dtt ( void )
{
int i ;
unsigned char sensors [ ] = CONFIG_DTT_SENSORS ;
for ( i = 0 ; i < sizeof ( sensors ) ; i + + ) {
if ( ( sensor_initialized & ( 1 < < i ) ) = = 0 ) {
if ( dtt_init_one ( sensors [ i ] ) ! = 0 ) {
printf ( " DTT%d: Failed init! \n " , i ) ;
continue ;
}
sensor_initialized | = ( 1 < < i ) ;
}
}
}
void dtt_init ( void )
{
int old_bus ;
/* switch to correct I2C bus */
old_bus = I2C_GET_BUS ( ) ;
I2C_SET_BUS ( CONFIG_SYS_DTT_BUS_NUM ) ;
_initialize_dtt ( ) ;
/* switch back to original I2C bus */
I2C_SET_BUS ( old_bus ) ;
}
int do_dtt ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
{
int i ;
@ -42,20 +72,14 @@ int do_dtt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
old_bus = I2C_GET_BUS ( ) ;
I2C_SET_BUS ( CONFIG_SYS_DTT_BUS_NUM ) ;
_initialize_dtt ( ) ;
/*
* Loop through sensors , read
* temperature , and output it .
*/
for ( i = 0 ; i < sizeof ( sensors ) ; i + + ) {
if ( ( sensor_initialized & ( 1 < < i ) ) = = 0 ) {
if ( dtt_init_one ( sensors [ i ] ) ! = 0 ) {
printf ( " DTT%d: Failed init! \n " , i ) ;
continue ;
}
sensor_initialized | = ( 1 < < i ) ;
}
for ( i = 0 ; i < sizeof ( sensors ) ; i + + )
printf ( " DTT%d: %i C \n " , i + 1 , dtt_get_temp ( sensors [ i ] ) ) ;
}
/* switch back to original I2C bus */
I2C_SET_BUS ( old_bus ) ;