@ -46,16 +46,16 @@
*/
# define I2C_RXTX_LEN 128 /* maximum tx/rx buffer length */
# if defined(CONFIG_I2C_MULTI_BUS)
# if !defined(CONFIG_SYS_MAX_I2C_BUS)
# define CONFIG_SYS_MAX_I2C_BUS 2
# endif
# define I2C_GET_BUS() i2c_get_bus_num()
# define I2C_SET_BUS(a) i2c_set_bus_num(a)
# ifdef CONFIG_I2C_MULTI_BUS
# define MAX_I2C_BUS 2
# define I2C_MULTI_BUS 1
# else
# define CONFIG_SYS_MAX_I2C_BUS 1
# define I2C_GET_BUS() 0
# define I2C_SET_BUS(a)
# define MAX_I2C_BUS 1
# define I2C_MULTI_BUS 0
# endif
# if !defined(CONFIG_SYS_MAX_I2C_BUS)
# define CONFIG_SYS_MAX_I2C_BUS MAX_I2C_BUS
# endif
/* define the I2C bus number for RTC and DTT if not already done */
@ -236,4 +236,18 @@ int i2c_set_bus_speed(unsigned int);
unsigned int i2c_get_bus_speed ( void ) ;
/* NOTE: These two functions MUST be always_inline to avoid code growth! */
static inline unsigned int I2C_GET_BUS ( void ) __attribute__ ( ( always_inline ) ) ;
static inline unsigned int I2C_GET_BUS ( void )
{
return I2C_MULTI_BUS ? i2c_get_bus_num ( ) : 0 ;
}
static inline void I2C_SET_BUS ( unsigned int bus ) __attribute__ ( ( always_inline ) ) ;
static inline void I2C_SET_BUS ( unsigned int bus )
{
if ( I2C_MULTI_BUS )
i2c_set_bus_num ( bus ) ;
}
# endif /* _I2C_H_ */