aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorPeter Tyser <ptyser@xes-inc.com>2009-04-18 22:34:01 -0500
committerWolfgang Denk <wd@denx.de>2009-06-12 20:39:45 +0200
commit655b34a78adf60ef260981688837904208883ae9 (patch)
treefcf5dc101741e5d250ffc90fc0ed90c524428eaa /common
parent8229e9c04f7019ddd76aea05d4dca044cbc9a34a (diff)
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 <ptyser@xes-inc.com>
Diffstat (limited to 'common')
-rw-r--r--common/cmd_i2c.c18
1 files changed, 18 insertions, 0 deletions
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}