diff options
| -rw-r--r-- | drivers/i2c/i2c_core.c | 5 | ||||
| -rw-r--r-- | include/i2c.h | 2 | 
2 files changed, 7 insertions, 0 deletions
| diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c index d1072e819..b263562ed 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 8fd17d190..c1be533d5 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 |