From 655b34a78adf60ef260981688837904208883ae9 Mon Sep 17 00:00:00 2001 From: Peter Tyser Date: Sat, 18 Apr 2009 22:34:01 -0500 Subject: i2c: Create common default i2c_[set|get]_bus_speed() functions New default, weak i2c_get_bus_speed() and i2c_set_bus_speed() functions replace a number of architecture-specific implementations. Also, providing default functions will allow all boards to enable CONFIG_I2C_CMD_TREE. This was previously not possible since the tree-form of the i2c command provides the ability to display and modify the i2c bus speed which requires i2c_[set|get]_bus_speed() to be present. Signed-off-by: Peter Tyser --- common/cmd_i2c.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'common/cmd_i2c.c') diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c index 16439ac48..c071df732 100644 --- a/common/cmd_i2c.c +++ b/common/cmd_i2c.c @@ -138,6 +138,24 @@ DECLARE_GLOBAL_DATA_PTR; static int mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]); +/* TODO: Implement architecture-specific get/set functions */ +unsigned int __def_i2c_get_bus_speed(void) +{ + return CONFIG_SYS_I2C_SPEED; +} +unsigned int i2c_get_bus_speed(void) + __attribute__((weak, alias("__def_i2c_get_bus_speed"))); + +int __def_i2c_set_bus_speed(unsigned int speed) +{ + if (speed != CONFIG_SYS_I2C_SPEED) + return -1; + + return 0; +} +int i2c_set_bus_speed(unsigned int) + __attribute__((weak, alias("__def_i2c_set_bus_speed"))); + /* * Syntax: * imd {i2c_chip} {addr}{.0, .1, .2} {len} -- cgit v1.2.3