pinctrl: exynos: Consolidate irq_chips of GPIO and WKUP EINTs
authorTomasz Figa <t.figa@samsung.com>
Wed, 2 Jul 2014 15:41:01 +0000 (17:41 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 11 Jul 2014 12:08:37 +0000 (14:08 +0200)
commit2e4a4fda30fcf961f06573336db98cd460d3bf72
tree44da78c25e9cf12a3e7b91ca2c9dd7ae386fbcb2
parent6c6ce620e08f8764fd9884094afb274e6e85a47a
pinctrl: exynos: Consolidate irq_chips of GPIO and WKUP EINTs

Handling of irq_chip operations for GPIO and WKUP external interrupts
is mostly the same, with the difference being offset of registers.
However currently the driver has all the code duplicated for both EINT
types, which is undesirable, because changes in irq_chip operations have
to be done to both instances of the same code.

This patch fixes this by creating exynos_irq_chip struct that has normal
irq_chip struct embedded and contain differences between particular EINT
types, which are three register offsets. One instance of code is removed
and the new structure is used instead to fetch necessary data instead of
samsung_pin_ctrl struct used previously.

While at it, the patch removes Exynos-specific fields from
aforementioned structure to improve layering of the driver.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-exynos.c
drivers/pinctrl/pinctrl-samsung.h