[PATCH v6 0/2] pinctr: mediatek: make MediaTek pinctrl-paris and related driver ready for buidling loadable module
From: light.hsieh
Date: Tue Apr 07 2020 - 03:22:25 EST
From: Light Hsieh <light.hsieh@xxxxxxxxxxxx>
pinctrl: mediatek: make MediaTek pinctrl v2 driver ready for buidling loadable module
In the future we want to be able to build the MediaTek pinctrl driver,
based on paris, as kernel module. This patch allows pinctrl-paris.c, the
external interrupt controller mtk-eint.c, and pinctrl-mtk-common-v2.c to
be loadable as module.
The following is the rationale for determining whether mtk-eint.c,
pinctrl-mtk-common-v2.c, and pinctrl-paris.c are built as loadable module:
1. drivers/pinctrl/mediatek/Kconfig:
1.1 PINCTRL_MTXXXX: change from bool to tristate. It is specified in
defconfig file. MTXXXX can only be the user of pinctrl-paris,
which can MT6765 or MT8183. The patch for changing
PINCTRL_MT6765 from bool to tristate will be given as the next
patch of the patch series.
1.2 PINCTRL_MTK_PARIS: change from bool to tristate and select
PINCTRL_MTK_V2. No need to specify in defconfig file.
* PINCTRL_MTK_PARIS will be y if any PINCTRL_MTXXXX selecting
PINCTRL_MTK_PARIS is y.
* PINCTRL_MTK_PARIS will be n if all PINCTRL_MTXXXX selecting
PINCTRL_MTK_PARIS is n.
* PINCTRL_MTK_PARIS will be m if some PINCTRL_MTXXXX selecting
PINCTRL_MTK_PARIS are m and other PINCTRL_MTXXXX selecting
PINCTRL_MTK_PARIS are n.
1.3 PINCTRL_MTK_MOORE: select EINT_MTK and PINCTRL_MTK_V2. It is make
to be ready for building as loadable kernel module because it
is not used on Android kernel.
1.4 PINCTRL_MTK_V2: add this tristate config which depends on
PINCTRL_MTK_PARIS and PINCTRL_MTK_MOORE. No need to specify in
defconfig file.
* PINCTRL_MTK_V2 will be y if either PINCTRL_MTK_PARIS or
PINCTRL_MTK_MOORE is y.
* PINCTRL_MTK_V2 will be n if both PINCTRL_MTK_PARIS and
PINCTRL_MTK_MOORE are n.
* PINCTRL_MTK_V2 will be m if PINCTRL_MTK_PARIS is m and
PINCTRL_MTK_MOORE is n.
1.5 EINT_MTK: change from bool to tristate and add rule for default.
No need to specify in defconfig file.
* First rule: determine if EINT_MTK is y or n according to
selection of PINCTRL_MTK or PINCTRL_MTK_MORE.
* Second rule: determine if EINT_MTK is y, m, or n according to
selection of PINCTRL_MTK_PARIS.
2. drivers/pinctrl/mediatek/Makefile: Use PINCTRL_MTK_V2 to determine
if pinctrl-mtk-common-v2.c is built as loadable module or
built-in.
Light Hsieh (2):
pinctrl: mediatek: make MediaTek pinctrl v2 driver ready for buidling
loadable module
pinctrl: mediatek: make MediaTek MT6765 pinctrl ready for buiding
loadable module
drivers/pinctrl/mediatek/Kconfig | 13 ++++++++++---
drivers/pinctrl/mediatek/Makefile | 5 +++--
drivers/pinctrl/mediatek/mtk-eint.c | 9 +++++++++
drivers/pinctrl/mediatek/pinctrl-mt6765.c | 4 ++++
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 24 ++++++++++++++++++++++++
drivers/pinctrl/mediatek/pinctrl-paris.c | 6 ++++++
6 files changed, 56 insertions(+), 5 deletions(-)
--
1.8.1.1.dirty