From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Tue, 26 Apr 2016 09:45:58 +0800 Subject: [U-Boot] [PATCH] dm: gpio: pca953x: Support PCA953X with 40 GPIOs In-Reply-To: <1461590737-7493-1-git-send-email-mario.six@gdsys.cc> References: <1461590737-7493-1-git-send-email-mario.six@gdsys.cc> Message-ID: <20160426014556.GA8462@linux-7smt.suse> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Mario, On Mon, Apr 25, 2016 at 03:25:37PM +0200, Mario Six wrote: >A DM driver for PCA953x was recently introduced by Peng Fan, which lacked >support for the 40 GPIO versions. > >This patch adds support for these chips. > >Signed-off-by: Mario Six Looks fine to me. Reviewed-by: Peng Fan >--- > drivers/gpio/pca953x_gpio.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c >index 987d10e..065b181 100644 >--- a/drivers/gpio/pca953x_gpio.c >+++ b/drivers/gpio/pca953x_gpio.c >@@ -16,8 +16,8 @@ > * > * TODO: > * 1. Support PCA957X_TYPE >- * 2. Support max 40 gpio pins >- * 3. Support Plolarity Inversion >+ * 2. Support 24 gpio pins >+ * 3. Support Polarity Inversion > */ > > #include >@@ -47,7 +47,7 @@ enum { > PCA953X_DIRECTION_OUT, > }; > >-#define MAX_BANK 3 >+#define MAX_BANK 5 > #define BANK_SZ 8 > > DECLARE_GLOBAL_DATA_PTR; >@@ -121,6 +121,9 @@ static int pca953x_read_regs(struct udevice *dev, int reg, u8 *val) > ret = dm_i2c_read(dev, reg, val, 1); > } else if (info->gpio_count <= 16) { > ret = dm_i2c_read(dev, reg << 1, val, info->bank_count); >+ } else if (info->gpio_count == 40) { >+ /* Auto increment */ >+ ret = dm_i2c_read(dev, (reg << 3) | 0x80, val, info->bank_count); > } else { > dev_err(dev, "Unsupported now\n"); > return -EINVAL; >-- >2.7.0.GIT >