Skip to content

Commit

Permalink
GPIO: PCA953X: Increase size of invert variable to support 24 bit
Browse files Browse the repository at this point in the history
TCA6424 is a low voltage 24 bit I2C and SMBus I/O expander of pca953x family
similar to its 16 bit predecessor TCA6416. It comes with three 8-bit active
Input, Output, Polarity Inversion and Configuration registers each. The polarity
of Input ports can be reversed by setting the appropiate bit in Polarity
Inversion registers.

The variables corresponding to Input, Output and Configuration registers have
already been updated to support 24 bit values. This patch thus updates the
invert variable of PCA953X platform data to support 24 bit.

Signed-off-by: Chandrabhanu Mahapatra <cmahapatra@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Chandrabhanu Mahapatra authored and Linus Walleij committed Jul 17, 2012
1 parent 3467201 commit 6a7b36a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
11 changes: 6 additions & 5 deletions drivers/gpio/gpio-pca953x.c
Original file line number Diff line number Diff line change
Expand Up @@ -568,7 +568,7 @@ static void pca953x_irq_teardown(struct pca953x_chip *chip)
* WARNING: This is DEPRECATED and will be removed eventually!
*/
static void
pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, int *invert)
pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, u32 *invert)
{
struct device_node *node;
const __be32 *val;
Expand Down Expand Up @@ -596,13 +596,13 @@ pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, int *invert)
}
#else
static void
pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, int *invert)
pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, u32 *invert)
{
*gpio_base = -1;
}
#endif

static int __devinit device_pca953x_init(struct pca953x_chip *chip, int invert)
static int __devinit device_pca953x_init(struct pca953x_chip *chip, u32 invert)
{
int ret;

Expand All @@ -621,7 +621,7 @@ static int __devinit device_pca953x_init(struct pca953x_chip *chip, int invert)
return ret;
}

static int __devinit device_pca957x_init(struct pca953x_chip *chip, int invert)
static int __devinit device_pca957x_init(struct pca953x_chip *chip, u32 invert)
{
int ret;
u32 val = 0;
Expand Down Expand Up @@ -657,8 +657,9 @@ static int __devinit pca953x_probe(struct i2c_client *client,
{
struct pca953x_platform_data *pdata;
struct pca953x_chip *chip;
int irq_base=0, invert=0;
int irq_base = 0;
int ret;
u32 invert = 0;

chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL);
if (chip == NULL)
Expand Down
2 changes: 1 addition & 1 deletion include/linux/i2c/pca953x.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ struct pca953x_platform_data {
unsigned gpio_base;

/* initial polarity inversion setting */
uint16_t invert;
u32 invert;

/* interrupt base */
int irq_base;
Expand Down

0 comments on commit 6a7b36a

Please sign in to comment.