diff options
Diffstat (limited to 'drivers/gpio/gpio-davinci.c')
-rw-r--r-- | drivers/gpio/gpio-davinci.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 446df4ece915..2f0b6fdbcddb 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c | |||
@@ -186,7 +186,7 @@ static int davinci_gpio_of_xlate(struct gpio_chip *gc, | |||
186 | 186 | ||
187 | static int davinci_gpio_probe(struct platform_device *pdev) | 187 | static int davinci_gpio_probe(struct platform_device *pdev) |
188 | { | 188 | { |
189 | static int ctrl_num; | 189 | static int ctrl_num, bank_base; |
190 | int gpio, bank; | 190 | int gpio, bank; |
191 | unsigned ngpio, nbank; | 191 | unsigned ngpio, nbank; |
192 | struct davinci_gpio_controller *chips; | 192 | struct davinci_gpio_controller *chips; |
@@ -240,6 +240,7 @@ static int davinci_gpio_probe(struct platform_device *pdev) | |||
240 | chips->chip.set = davinci_gpio_set; | 240 | chips->chip.set = davinci_gpio_set; |
241 | 241 | ||
242 | chips->chip.ngpio = ngpio; | 242 | chips->chip.ngpio = ngpio; |
243 | chips->chip.base = bank_base; | ||
243 | 244 | ||
244 | #ifdef CONFIG_OF_GPIO | 245 | #ifdef CONFIG_OF_GPIO |
245 | chips->chip.of_gpio_n_cells = 2; | 246 | chips->chip.of_gpio_n_cells = 2; |
@@ -248,6 +249,7 @@ static int davinci_gpio_probe(struct platform_device *pdev) | |||
248 | chips->chip.of_node = dev->of_node; | 249 | chips->chip.of_node = dev->of_node; |
249 | #endif | 250 | #endif |
250 | spin_lock_init(&chips->lock); | 251 | spin_lock_init(&chips->lock); |
252 | bank_base += ngpio; | ||
251 | 253 | ||
252 | for (gpio = 0, bank = 0; gpio < ngpio; gpio += 32, bank++) | 254 | for (gpio = 0, bank = 0; gpio < ngpio; gpio += 32, bank++) |
253 | chips->regs[bank] = gpio_base + offset_array[bank]; | 255 | chips->regs[bank] = gpio_base + offset_array[bank]; |