gpio: davinci: Redesign driver to accommodate ngpios in one gpio chip
authorKeerthy <j-keerthy@ti.com>
Fri, 13 Jan 2017 04:20:12 +0000 (09:50 +0530)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 26 Jan 2017 09:00:21 +0000 (10:00 +0100)
commitb5cf3fd827d2e11355c126b44ea625650ebf4d39
treeea1b09015291512b2e8e36590f60a727a7ed2575
parent53d333ac93911dab22d12a78b0a6414f9afb0117
gpio: davinci: Redesign driver to accommodate ngpios in one gpio chip

The Davinci GPIO driver is implemented to work with one monolithic
Davinci GPIO platform device which may have up to Y(144) gpios.
The Davinci GPIO driver instantiates number of GPIO chips with
max 32 gpio pins per each during initialization and one IRQ domain.
So, the current GPIO's  opjects structure is:

<platform device> Davinci GPIO controller
 |- <gpio0_chip0> ------|
 ...                    |--- irq_domain (hwirq [0..143])
 |- <gpio0_chipN> ------|

Current driver creates one chip for every 32 GPIOs in a controller.
This was a limitation earlier now there is no need for that. Hence
redesigning the driver to create one gpio chip for all the ngpio
in the controller.

|- <gpio0_chip0> ------|--- irq_domain (hwirq [0..143]).

The previous discussion on this can be found here:
https://www.spinics.net/lists/linux-omap/msg132869.html

Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-davinci.c
include/linux/platform_data/gpio-davinci.h