pinctrl: meson-g12a: add pinctrl driver support
authorYixun Lan <yixun.lan@amlogic.com>
Tue, 7 Aug 2018 02:06:34 +0000 (10:06 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 29 Aug 2018 08:34:53 +0000 (10:34 +0200)
commit29ae0952e85f3ef2ac87eb39f9cc867e2458a0ad
tree71869940040a91e9dc2e13f5fc6e8af92cdc93bf
parent3cd3c83f675259aaf6bebdafb37622be2139fb8f
pinctrl: meson-g12a: add pinctrl driver support

Add the pinctrl driver for Meson-G12A SoC which share the similar IP as
the previous Meson-AXG SoC, both use same pinmux ops (register layout).
A new driver is needed here due to the differences in the pins.

Starting from Meson-AXG SoC, the pinctrl controller block use 4
continues register bits to specific the pin mux function, while comparing
to old generation SoC which using variable length register bits for
the pin mux definition. The new design greatly simplify the software model.

For the detail example, one 32bit register can be divided into 8 parts,
each has 4 bits whose value start from 0 - 7, each can describe one pin,
the value 0 is always devoted to GPIO function, while 1 - 7 devoted to
the mux pin function.

Please note, the GPIOE is actually located at AO (always on) bank.

Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Xingyu Chen <xingyu.chen@amlogic.com>
Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/meson/Kconfig
drivers/pinctrl/meson/Makefile
drivers/pinctrl/meson/pinctrl-meson-g12a.c [new file with mode: 0644]