diff options
author | Sean Wang <sean.wang@mediatek.com> | 2018-05-20 20:01:48 +0300 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2018-05-24 10:37:21 +0300 |
commit | e46df235b4e605aa4e7609a27c118a1cccd4ff9a (patch) | |
tree | 9af4bf24920c267f5ff6bd0e99aa2a8272bfcd45 /drivers/pinctrl/mediatek/pinctrl-mt2712.c | |
parent | 6ee6fbde42f41fda10b610f81bbba7b3afea513f (diff) | |
download | linux-e46df235b4e605aa4e7609a27c118a1cccd4ff9a.tar.xz |
pinctrl: mediatek: refactor EINT related code for all MediaTek pinctrl can fit
This patch is in preparation for adding EINT support to MT7622 pinctrl,
and the refactoring doesn't alter any existent logic.
A reason we have to refactor EINT code pieces into a generic way is that
currently, they're tightly coupled with a certain type of MediaTek pinctrl
would cause a grown in a very bad way as there is different types of
pinctrl devices getting to join.
Therefore, it is an essential or urgent thing that EINT code pieces are
refactored to eliminate any dependencies across GPIO and EINT as possible.
Additional structure mtk_eint_[xt, hw, regs] are being introduced for
indicating how maps being designed between GPIO and EINT hw number, how to
set and get GPIO state for a certain EINT pin, what characteristic on a
EINT device is present on various SoCs.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/mediatek/pinctrl-mt2712.c')
-rw-r--r-- | drivers/pinctrl/mediatek/pinctrl-mt2712.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt2712.c b/drivers/pinctrl/mediatek/pinctrl-mt2712.c index 81e11f9e70f1..02aff2802224 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt2712.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt2712.c @@ -576,8 +576,14 @@ static const struct mtk_pinctrl_devdata mt2712_pinctrl_data = { .port_shf = 4, .port_mask = 0xf, .port_align = 4, - .eint_offsets = { + .eint_hw = { .name = "mt2712_eint", + .port_mask = 0xf, + .ports = 8, + .ap_num = 229, + .db_cnt = 40, + }, + .eint_regs = { .stat = 0x000, .ack = 0x040, .mask = 0x080, @@ -596,11 +602,7 @@ static const struct mtk_pinctrl_devdata mt2712_pinctrl_data = { .dbnc_ctrl = 0x500, .dbnc_set = 0x600, .dbnc_clr = 0x700, - .port_mask = 0xf, - .ports = 8, }, - .ap_num = 229, - .db_cnt = 40, }; static int mt2712_pinctrl_probe(struct platform_device *pdev) |