From 16f513ee78e54d71ffcd92248caea0b1360c0ed7 Mon Sep 17 00:00:00 2001
From: Peng Fan <peng.fan@nxp.com>
Date: Tue, 17 Jul 2018 20:38:32 +0800
Subject: [PATCH] i2c-mux: pca954x: support pca9646 i2c switch

Add the PCA9646 support, which is 2-wire bus switch and buffered 4-channel.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
---
 drivers/i2c/muxes/pca954x.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c
index 4debc03957..ab8b4000af 100644
--- a/drivers/i2c/muxes/pca954x.c
+++ b/drivers/i2c/muxes/pca954x.c
@@ -17,7 +17,8 @@ DECLARE_GLOBAL_DATA_PTR;
 enum pca_type {
 	PCA9544,
 	PCA9547,
-	PCA9548
+	PCA9548,
+	PCA9646
 };
 
 struct chip_desc {
@@ -51,6 +52,11 @@ static const struct chip_desc chips[] = {
 		.muxtype = pca954x_isswi,
 		.width = 8,
 	},
+	[PCA9646] = {
+		.enable = 0x0,
+		.muxtype = pca954x_isswi,
+		.width = 4,
+	},
 };
 
 static int pca954x_deselect(struct udevice *mux, struct udevice *bus,
@@ -86,6 +92,7 @@ static const struct udevice_id pca954x_ids[] = {
 	{ .compatible = "nxp,pca9544", .data = PCA9544 },
 	{ .compatible = "nxp,pca9547", .data = PCA9547 },
 	{ .compatible = "nxp,pca9548", .data = PCA9548 },
+	{ .compatible = "nxp,pca9646", .data = PCA9646 },
 	{ }
 };
 
-- 
2.39.5