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>
This commit is contained in:
Chris Packham 2020-04-01 15:55:27 +13:00 committed by Heiko Schocher
parent 8d5d3bcf3c
commit 0b1d7b7271
2 changed files with 8 additions and 2 deletions

View File

@ -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"

View File

@ -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 },