
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 mario.six@gdsys.cc
Looks fine to me.
Reviewed-by: Peng Fan van.freenix@gmail.com
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:
- Support PCA957X_TYPE
- Support max 40 gpio pins
- Support Plolarity Inversion
- Support 24 gpio pins
- Support Polarity Inversion
*/
#include <common.h> @@ -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 */
} else { dev_err(dev, "Unsupported now\n"); return -EINVAL;ret = dm_i2c_read(dev, (reg << 3) | 0x80, val, info->bank_count);
-- 2.7.0.GIT