Commit 77906a54 authored by Daniel Silverstone's avatar Daniel Silverstone Committed by Linus Torvalds

pca953x: support GPIOLIB GPIO naming

Add support to the PCA953x driver to use the GPIOLIB naming facility for
GPIOs.
Signed-off-by: default avatarDaniel Silverstone <dsilvers@simtec.co.uk>
Cc: Ben Gardner <bgardner@wabtec.com>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7bfa58dd
...@@ -50,6 +50,7 @@ struct pca953x_chip { ...@@ -50,6 +50,7 @@ struct pca953x_chip {
struct i2c_client *client; struct i2c_client *client;
struct gpio_chip gpio_chip; struct gpio_chip gpio_chip;
char **names;
}; };
static int pca953x_write_reg(struct pca953x_chip *chip, int reg, uint16_t val) static int pca953x_write_reg(struct pca953x_chip *chip, int reg, uint16_t val)
...@@ -192,6 +193,7 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios) ...@@ -192,6 +193,7 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)
gc->label = chip->client->name; gc->label = chip->client->name;
gc->dev = &chip->client->dev; gc->dev = &chip->client->dev;
gc->owner = THIS_MODULE; gc->owner = THIS_MODULE;
gc->names = chip->names;
} }
static int __devinit pca953x_probe(struct i2c_client *client, static int __devinit pca953x_probe(struct i2c_client *client,
...@@ -215,6 +217,8 @@ static int __devinit pca953x_probe(struct i2c_client *client, ...@@ -215,6 +217,8 @@ static int __devinit pca953x_probe(struct i2c_client *client,
chip->gpio_start = pdata->gpio_base; chip->gpio_start = pdata->gpio_base;
chip->names = pdata->names;
/* initialize cached registers from their original values. /* initialize cached registers from their original values.
* we can't share this chip with another i2c master. * we can't share this chip with another i2c master.
*/ */
......
...@@ -15,4 +15,5 @@ struct pca953x_platform_data { ...@@ -15,4 +15,5 @@ struct pca953x_platform_data {
int (*teardown)(struct i2c_client *client, int (*teardown)(struct i2c_client *client,
unsigned gpio, unsigned ngpio, unsigned gpio, unsigned ngpio,
void *context); void *context);
char **names;
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment