@ -9,6 +9,7 @@
# include <common.h>
# include <common.h>
# include <i2c.h>
# include <i2c.h>
# include "eeprom.h"
# ifndef CONFIG_SYS_I2C_EEPROM_ADDR
# ifndef CONFIG_SYS_I2C_EEPROM_ADDR
# define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
# define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
@ -25,6 +26,8 @@
# define BOARD_REV_OFFSET 0
# define BOARD_REV_OFFSET 0
# define BOARD_REV_OFFSET_LEGACY 6
# define BOARD_REV_OFFSET_LEGACY 6
# define BOARD_REV_SIZE 2
# define BOARD_REV_SIZE 2
# define PRODUCT_NAME_OFFSET 128
# define PRODUCT_NAME_SIZE 16
# define MAC_ADDR_OFFSET 4
# define MAC_ADDR_OFFSET 4
# define MAC_ADDR_OFFSET_LEGACY 0
# define MAC_ADDR_OFFSET_LEGACY 0
@ -151,3 +154,30 @@ u32 cl_eeprom_get_board_rev(uint eeprom_bus)
return board_rev ;
return board_rev ;
} ;
} ;
/*
* Routine : cl_eeprom_get_board_rev
* Description : read system revision from eeprom
*
* @ buf : buffer to store the product name
* @ eeprom_bus : i2c bus num of the eeprom
*
* @ return : 0 on success , < 0 on failure
*/
int cl_eeprom_get_product_name ( uchar * buf , uint eeprom_bus )
{
int err ;
if ( buf = = NULL )
return - EINVAL ;
err = cl_eeprom_setup ( eeprom_bus ) ;
if ( err )
return err ;
err = cl_eeprom_read ( PRODUCT_NAME_OFFSET , buf , PRODUCT_NAME_SIZE ) ;
if ( ! err ) /* Protect ourselves from invalid data (unterminated str) */
buf [ PRODUCT_NAME_SIZE - 1 ] = ' \0 ' ;
return err ;
}