From 7213d0f513c2a0dbcacbf0a811d01322cd82d25b Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Fri, 3 Dec 2004 03:39:04 +0000 Subject: i2c mux support git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1809 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/drivers/i2c/i2cmux/Config.lb | 2 ++ src/drivers/i2c/i2cmux/chip.h | 4 ++++ src/drivers/i2c/i2cmux/i2cmux.c | 44 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 src/drivers/i2c/i2cmux/Config.lb create mode 100644 src/drivers/i2c/i2cmux/chip.h create mode 100644 src/drivers/i2c/i2cmux/i2cmux.c (limited to 'src/drivers/i2c/i2cmux') diff --git a/src/drivers/i2c/i2cmux/Config.lb b/src/drivers/i2c/i2cmux/Config.lb new file mode 100644 index 0000000000..6bce919d5d --- /dev/null +++ b/src/drivers/i2c/i2cmux/Config.lb @@ -0,0 +1,2 @@ +config chip.h +object i2cmux.o diff --git a/src/drivers/i2c/i2cmux/chip.h b/src/drivers/i2c/i2cmux/chip.h new file mode 100644 index 0000000000..ffaf87954a --- /dev/null +++ b/src/drivers/i2c/i2cmux/chip.h @@ -0,0 +1,4 @@ +extern struct chip_operations drivers_i2c_i2cmux_ops; + +struct drivers_i2c_i2cmux_config { +}; diff --git a/src/drivers/i2c/i2cmux/i2cmux.c b/src/drivers/i2c/i2cmux/i2cmux.c new file mode 100644 index 0000000000..512b19f48a --- /dev/null +++ b/src/drivers/i2c/i2cmux/i2cmux.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include +#include +#include "chip.h" + +static void i2cmux_set_link(device_t dev, unsigned int link) +{ + if (dev->enabled && dev->path.type == DEVICE_PATH_I2C) + { + if(ops_smbus_bus(get_pbus_smbus(dev))) { + smbus_write_byte(dev, 0x01, 1<links>0) + dev->ops = &i2cmux_operations; +} + +struct chip_operations drivers_i2c_i2cmux_ops = { + CHIP_NAME("i2cmux") + .enable_dev = enable_dev, +}; -- cgit v1.2.3