diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2015-12-07 09:26:02 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-01-05 05:21:19 -0500 |
commit | 9a3ad668a081163ad5108a6f5d3a7ddaa0390098 (patch) | |
tree | 30ca633161b53e3e4e88da362171d3da4ad5b7e7 /drivers/gpio/gpio-zevio.c | |
parent | e730a5953af4c54a50fb7712af4dd9468dedcd22 (diff) |
gpio: zevio: use gpiochip data pointer
This makes the driver use the data pointer added to the gpio_chip
to store a pointer to the state container instead of relying on
container_of().
Cc: Fabian Vogt <fabian@ritter-vogt.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-zevio.c')
-rw-r--r-- | drivers/gpio/gpio-zevio.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpio/gpio-zevio.c b/drivers/gpio/gpio-zevio.c index 65b61dcc6268..cda6d922be98 100644 --- a/drivers/gpio/gpio-zevio.c +++ b/drivers/gpio/gpio-zevio.c | |||
@@ -52,9 +52,6 @@ | |||
52 | #define ZEVIO_GPIO_INPUT 0x18 | 52 | #define ZEVIO_GPIO_INPUT 0x18 |
53 | #define ZEVIO_GPIO_INT_STICKY 0x20 | 53 | #define ZEVIO_GPIO_INT_STICKY 0x20 |
54 | 54 | ||
55 | #define to_zevio_gpio(chip) container_of(to_of_mm_gpio_chip(chip), \ | ||
56 | struct zevio_gpio, chip) | ||
57 | |||
58 | /* Bit number of GPIO in its section */ | 55 | /* Bit number of GPIO in its section */ |
59 | #define ZEVIO_GPIO_BIT(gpio) (gpio&7) | 56 | #define ZEVIO_GPIO_BIT(gpio) (gpio&7) |
60 | 57 | ||
@@ -80,7 +77,7 @@ static inline void zevio_gpio_port_set(struct zevio_gpio *c, unsigned pin, | |||
80 | /* Functions for struct gpio_chip */ | 77 | /* Functions for struct gpio_chip */ |
81 | static int zevio_gpio_get(struct gpio_chip *chip, unsigned pin) | 78 | static int zevio_gpio_get(struct gpio_chip *chip, unsigned pin) |
82 | { | 79 | { |
83 | struct zevio_gpio *controller = to_zevio_gpio(chip); | 80 | struct zevio_gpio *controller = gpiochip_get_data(chip); |
84 | u32 val, dir; | 81 | u32 val, dir; |
85 | 82 | ||
86 | spin_lock(&controller->lock); | 83 | spin_lock(&controller->lock); |
@@ -96,7 +93,7 @@ static int zevio_gpio_get(struct gpio_chip *chip, unsigned pin) | |||
96 | 93 | ||
97 | static void zevio_gpio_set(struct gpio_chip *chip, unsigned pin, int value) | 94 | static void zevio_gpio_set(struct gpio_chip *chip, unsigned pin, int value) |
98 | { | 95 | { |
99 | struct zevio_gpio *controller = to_zevio_gpio(chip); | 96 | struct zevio_gpio *controller = gpiochip_get_data(chip); |
100 | u32 val; | 97 | u32 val; |
101 | 98 | ||
102 | spin_lock(&controller->lock); | 99 | spin_lock(&controller->lock); |
@@ -112,7 +109,7 @@ static void zevio_gpio_set(struct gpio_chip *chip, unsigned pin, int value) | |||
112 | 109 | ||
113 | static int zevio_gpio_direction_input(struct gpio_chip *chip, unsigned pin) | 110 | static int zevio_gpio_direction_input(struct gpio_chip *chip, unsigned pin) |
114 | { | 111 | { |
115 | struct zevio_gpio *controller = to_zevio_gpio(chip); | 112 | struct zevio_gpio *controller = gpiochip_get_data(chip); |
116 | u32 val; | 113 | u32 val; |
117 | 114 | ||
118 | spin_lock(&controller->lock); | 115 | spin_lock(&controller->lock); |
@@ -129,7 +126,7 @@ static int zevio_gpio_direction_input(struct gpio_chip *chip, unsigned pin) | |||
129 | static int zevio_gpio_direction_output(struct gpio_chip *chip, | 126 | static int zevio_gpio_direction_output(struct gpio_chip *chip, |
130 | unsigned pin, int value) | 127 | unsigned pin, int value) |
131 | { | 128 | { |
132 | struct zevio_gpio *controller = to_zevio_gpio(chip); | 129 | struct zevio_gpio *controller = gpiochip_get_data(chip); |
133 | u32 val; | 130 | u32 val; |
134 | 131 | ||
135 | spin_lock(&controller->lock); | 132 | spin_lock(&controller->lock); |
@@ -187,7 +184,9 @@ static int zevio_gpio_probe(struct platform_device *pdev) | |||
187 | controller->chip.gc = zevio_gpio_chip; | 184 | controller->chip.gc = zevio_gpio_chip; |
188 | controller->chip.gc.parent = &pdev->dev; | 185 | controller->chip.gc.parent = &pdev->dev; |
189 | 186 | ||
190 | status = of_mm_gpiochip_add(pdev->dev.of_node, &(controller->chip)); | 187 | status = of_mm_gpiochip_add_data(pdev->dev.of_node, |
188 | &(controller->chip), | ||
189 | controller); | ||
191 | if (status) { | 190 | if (status) { |
192 | dev_err(&pdev->dev, "failed to add gpiochip: %d\n", status); | 191 | dev_err(&pdev->dev, "failed to add gpiochip: %d\n", status); |
193 | return status; | 192 | return status; |