summaryrefslogtreecommitdiff
path: root/drivers/i2c
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2020-04-01 05:55:27 +0300
committerHeiko Schocher <hs@denx.de>2020-04-20 07:47:35 +0300
commit0b1d7b7271c6df13da87218dfa8a2459e0eb29fa (patch)
treedb168f20932883fe5d7c8b9a8444c7d3906e3a62 /drivers/i2c
parent8d5d3bcf3c53d798bd7f3fe7092e994593bcc41c (diff)
downloadu-boot-0b1d7b7271c6df13da87218dfa8a2459e0eb29fa.tar.xz
i2c: muxes: pca954x: add PCA9546 variant
This adds the PCA9546 4-channel i2c bus switch. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net> Reviewed-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/muxes/Kconfig4
-rw-r--r--drivers/i2c/muxes/pca954x.c6
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig
index 68f15261be..39683fc43b 100644
--- a/drivers/i2c/muxes/Kconfig
+++ b/drivers/i2c/muxes/Kconfig
@@ -33,8 +33,8 @@ config I2C_MUX_PCA954x
devices. It is x width I2C multiplexer which enables to partitioning
I2C bus and connect multiple devices with the same address to the same
I2C controller where driver handles proper routing to target i2c
- device. Supported chips are PCA9543, PCA9544, PCA9547, PCA9548 and
- PCA9646.
+ device. Supported chips are PCA9543, PCA9544, PCA9546, PCA9547,
+ PCA9548 and PCA9646.
config I2C_MUX_GPIO
tristate "GPIO-based I2C multiplexer"
diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c
index be90a7b24a..cc8afc93b5 100644
--- a/drivers/i2c/muxes/pca954x.c
+++ b/drivers/i2c/muxes/pca954x.c
@@ -18,6 +18,7 @@ DECLARE_GLOBAL_DATA_PTR;
enum pca_type {
PCA9543,
PCA9544,
+ PCA9546,
PCA9547,
PCA9548,
PCA9646
@@ -48,6 +49,10 @@ static const struct chip_desc chips[] = {
.muxtype = pca954x_ismux,
.width = 4,
},
+ [PCA9546] = {
+ .muxtype = pca954x_isswi,
+ .width = 4,
+ },
[PCA9547] = {
.enable = 0x8,
.muxtype = pca954x_ismux,
@@ -95,6 +100,7 @@ static const struct i2c_mux_ops pca954x_ops = {
static const struct udevice_id pca954x_ids[] = {
{ .compatible = "nxp,pca9543", .data = PCA9543 },
{ .compatible = "nxp,pca9544", .data = PCA9544 },
+ { .compatible = "nxp,pca9546", .data = PCA9546 },
{ .compatible = "nxp,pca9547", .data = PCA9547 },
{ .compatible = "nxp,pca9548", .data = PCA9548 },
{ .compatible = "nxp,pca9646", .data = PCA9646 },