i2c: muxes: pca954x: support PCA9543 I2C switch
authorLuca Ceresoli <luca@lucaceresoli.net>
Tue, 9 Apr 2019 06:57:43 +0000 (08:57 +0200)
committerHeiko Schocher <hs@denx.de>
Thu, 11 Apr 2019 13:21:33 +0000 (15:21 +0200)
The PCA9543 is a 2-channel I2C switch.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher<hs@denx.de>
drivers/i2c/muxes/Kconfig
drivers/i2c/muxes/pca954x.c

index 4a601c88b78ffa0133bd8a80069e68eaa48d1ed4..68f15261be771ca24fbe2d1c19776d69e4daf9af 100644 (file)
@@ -33,7 +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 PCA9544, PCA9547, PCA9548 and PCA9646.
+         device. Supported chips are PCA9543, PCA9544, PCA9547, PCA9548 and
+         PCA9646.
 
 config I2C_MUX_GPIO
         tristate "GPIO-based I2C multiplexer"
index 5669753ce14d2c280ebfbbc4bc97f23278f8d6b7..a630ce991d04e3c5407e0a1bc23add78af2a442c 100644 (file)
@@ -15,6 +15,7 @@
 DECLARE_GLOBAL_DATA_PTR;
 
 enum pca_type {
+       PCA9543,
        PCA9544,
        PCA9547,
        PCA9548,
@@ -37,6 +38,10 @@ struct pca954x_priv {
 };
 
 static const struct chip_desc chips[] = {
+       [PCA9543] = {
+               .muxtype = pca954x_isswi,
+               .width = 2,
+       },
        [PCA9544] = {
                .enable = 0x4,
                .muxtype = pca954x_ismux,
@@ -87,6 +92,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,pca9547", .data = PCA9547 },
        { .compatible = "nxp,pca9548", .data = PCA9548 },