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 The series is posted on top of coouple of clean up patches: https://lkml.org/lkml/2017/1/4/94 https://patchwork.ozlabs.org/patch/710855/ Keerthy (3): gpio: davinci: Remove unwanted blank line gpio: davinci: Redesign driver to accomodate ngpio in one gpio chip gpio: davinci: Add support for multiple GPIO controllers drivers/gpio/gpio-davinci.c | 129 +++++++++++++++++------------ include/linux/platform_data/gpio-davinci.h | 13 ++- 2 files changed, 86 insertions(+), 56 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html