After submiting this driver to try to get mainlined and get out of staging some new cleanups seems to be necessary. According to this mail of Linus Walleij: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2018-June/121742.html and this mail os Rob Herring: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2018-June/121974.html this series tries to fix all of the issues in order to send v2 and give it a new try. Because I don't have to hardware to test my changes I send new cleanups first in staging to make easier to NeilBrown test it and get a feedback about them. Changes in v5: - PATCH 18 pass 'np' instead of 'bank' which was NULL and was wrong. Bank is no more neccesary because now we have only one node in the DT. Changes in v4: - Add "last minor cleanups" series to the same patch series. - Update Kconfig being more specific in description and help about the SoC. - Update dt-bindings, device tree and code to don't use banks in the device tree assuming this SoC has 3 banks with 32 gpios each. Changes in v3: - PATCH 7: refactor irq_type to make better code. - Add PATCH 8 avoiding the use of custom domain and requesting manually a 'IRQF_SHARED'. Changes in v2: - Patch where GPIOLIB_IRQCHIP was used avoiding the use of a custom irq domain has been dropped to be sure after this changes all is working properly. (This was PATCH 7 in previous series) - PATCH 1: * avoid introducing new macros and use 'bank' field of mtk_gc with register offset. * Make correct use of bgpio_init passing new void __iomem pointers instead of use the macros. - Previous series PATCH 8 now is PATCH 7. Avoid the use of a switch-case statement which was wrong and distinc if we have RISSING AND FALLING EDGE interrupt or HIGH LOW level ones. This last two are exclusive and cannot be generated at the same time. Hope this helps. Thanks in advance. Best regards, Sergio Paracuellos Sergio Paracuellos (18): staging: mt7621-gpio: make use 'bgpio_init' from GPIO_GENERIC staging: mt7621-gpio: avoid including 'gpio.h' staging: mt7621-gpio: make use of 'builtin_platform_driver' staging: mt7621-gpio: implement '.irq_[request|release]_resources' functions staging: mt7621-gpio: add COMPILE_TEST staging: mt7621-gpio: add kerneldoc for state data containers staging: mt7621-gpio: implement high level and low level irqs staging: mt7621-gpio: avoid custom irq_domain for gpio staging: mt7621-gpio: remove no more necessary PIN_MASK macro staging: mt7621-gpio: update kerneldoc for state containers staging: mt7621-gpio: align indentation for all defines staging: mt7621-gpio: avoid check for NULL in 'to_mediatek_gpio' calls staging: mt7621-gpio: avoid to set up irqs if not defined in dts staging: mt7621-gpio: avoid one level indentation in interrupt handler staging: mt7621-gpio: set different names for each gpio_chip and irq_chip staging: mt7621-gpio: avoid long line in a comment staging: mt7621-gpio: update Kconfig with SoC details staging: mt7621-gpio: avoid use banks in device tree drivers/staging/mt7621-dts/gbpc1.dts | 10 +- drivers/staging/mt7621-dts/mt7621.dtsi | 31 +- drivers/staging/mt7621-gpio/Kconfig | 8 +- drivers/staging/mt7621-gpio/gpio-mt7621.c | 406 +++++++++------------ .../staging/mt7621-gpio/mediatek,mt7621-gpio.txt | 59 +-- 5 files changed, 205 insertions(+), 309 deletions(-) -- 2.7.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel