diff mbox

[U-Boot] i2c: Zynq: Support for TI PCA9548 bus multiplexer

Message ID EFBFAB0BC299D345A30F813A3C85DA87012537B1@EDPR-EX01.logicpd.com
State Awaiting Upstream
Delegated to: Heiko Schocher
Headers show

Commit Message

Michael Burr Sept. 23, 2013, 10:35 p.m. UTC
(Interface is not quite the same as Phillips PCA9547.)

Signed-off-by: Michael Burr <michael.burr@logicpd.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Michal Simek <monstr@monstr.eu>
---
 drivers/i2c/i2c_core.c |    5 +++++
 include/i2c.h          |    2 ++
 2 files changed, 7 insertions(+)

Comments

Heiko Schocher Oct. 17, 2013, 6:41 a.m. UTC | #1
Hello Michael,

Am 24.09.2013 00:35, schrieb Michael Burr:
> (Interface is not quite the same as Phillips PCA9547.)
>
> Signed-off-by: Michael Burr<michael.burr@logicpd.com>
> Cc: Heiko Schocher<hs@denx.de>
> Cc: Michal Simek<monstr@monstr.eu>
>
> ---
> drivers/i2c/i2c_core.c |    5 +++++
>   include/i2c.h          |    2 ++
>   2 files changed, 7 insertions(+)

Applied to u-boot-i2c.git

Thanks!

bye,
Heiko
diff mbox

Patch

diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c
index d1072e8..b263562 100644
--- a/drivers/i2c/i2c_core.c
+++ b/drivers/i2c/i2c_core.c
@@ -138,6 +138,11 @@  static int i2c_mux_set(struct i2c_adapter *adap, int mux_id, int chip,
 			return -1;
 		buf = (uint8_t)((channel & 0x07) | (1 << 3));
 		break;
+	case I2C_MUX_PCA9548_ID:
+		if (channel > 7)
+			return -1;
+		buf = (uint8_t)(0x01 << channel);
+		break;
 	default:
 		printf("%s: wrong mux id: %d\n", __func__, mux_id);
 		return -1;
diff --git a/include/i2c.h b/include/i2c.h
index 8fd17d1..c1be533 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -135,6 +135,8 @@  extern struct i2c_bus_hose	i2c_bus[];
 #define I2C_MUX_PCA9544		{I2C_MUX_PCA9544_ID, "PCA9544A"}
 #define I2C_MUX_PCA9547_ID	4
 #define I2C_MUX_PCA9547		{I2C_MUX_PCA9547_ID, "PCA9547A"}
+#define I2C_MUX_PCA9548_ID	5
+#define I2C_MUX_PCA9548		{I2C_MUX_PCA9548_ID, "PCA9548"}
 #endif
 
 #ifndef I2C_SOFT_DECLARATIONS