diff mbox series

i2c: muxes: pca954x: add PCA9546 variant

Message ID 20200401025527.1402-1-judge.packham@gmail.com
State Accepted
Commit 0b1d7b7271c6df13da87218dfa8a2459e0eb29fa
Delegated to: Heiko Schocher
Headers show
Series i2c: muxes: pca954x: add PCA9546 variant | expand

Commit Message

Chris Packham April 1, 2020, 2:55 a.m. UTC
This adds the PCA9546 4-channel i2c bus switch.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
U-boot already supports the PCA9646 which is a pin-compatible (and
mostly register compatible) replacement. I still think it's worth making
the distinction and Linux actually supports the 9546 instead of the 9646
so u-boot will likely encounter dtses with 9546 in the compatible
string.

 drivers/i2c/muxes/Kconfig   | 4 ++--
 drivers/i2c/muxes/pca954x.c | 6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

Comments

Luca Ceresoli April 2, 2020, 7:55 a.m. UTC | #1
Hi Chris,

On 01/04/20 04:55, Chris Packham wrote:
> 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>
Heiko Schocher April 8, 2020, 3:48 a.m. UTC | #2
Hello Chris,

Am 01.04.2020 um 04:55 schrieb Chris Packham:
> This adds the PCA9546 4-channel i2c bus switch.
> 
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> U-boot already supports the PCA9646 which is a pin-compatible (and
> mostly register compatible) replacement. I still think it's worth making
> the distinction and Linux actually supports the 9546 instead of the 9646
> so u-boot will likely encounter dtses with 9546 in the compatible
> string.
> 
>   drivers/i2c/muxes/Kconfig   | 4 ++--
>   drivers/i2c/muxes/pca954x.c | 6 ++++++
>   2 files changed, 8 insertions(+), 2 deletions(-)

Reviewed-by: Heiko Schocher <hs@denx.de>

bye,
Heiko
Heiko Schocher April 21, 2020, 5:51 a.m. UTC | #3
Hello Chris,

Am 01.04.2020 um 04:55 schrieb Chris Packham:
> This adds the PCA9546 4-channel i2c bus switch.
> 
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> U-boot already supports the PCA9646 which is a pin-compatible (and
> mostly register compatible) replacement. I still think it's worth making
> the distinction and Linux actually supports the 9546 instead of the 9646
> so u-boot will likely encounter dtses with 9546 in the compatible
> string.
> 
>   drivers/i2c/muxes/Kconfig   | 4 ++--
>   drivers/i2c/muxes/pca954x.c | 6 ++++++
>   2 files changed, 8 insertions(+), 2 deletions(-)

Applied to u-boot-i2c master, thanks!

bye,
Heiko
diff mbox series

Patch

diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig
index 68f15261be77..39683fc43b49 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 be90a7b24a8e..cc8afc93b5e1 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 },