i2c: muxes: pca954x: add PCA9546 variant
authorChris Packham <judge.packham@gmail.com>
Wed, 1 Apr 2020 02:55:27 +0000 (15:55 +1300)
committerHeiko Schocher <hs@denx.de>
Mon, 20 Apr 2020 04:47:35 +0000 (06:47 +0200)
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>
drivers/i2c/muxes/Kconfig
drivers/i2c/muxes/pca954x.c

index 68f15261be771ca24fbe2d1c19776d69e4daf9af..39683fc43b4918c4f4f6131221f7e88ce0c2560a 100644 (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"
index be90a7b24a8e82ef7ad41549886568eaf7633acb..cc8afc93b5e180ab9d3a4978e3f106f2775d7766 100644 (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 },