forked from Minki/linux
pinctrl: mediatek: add pinctrl driver for MT7622 SoC
Add support for pinctrl on MT7622 SoC. The IO core found on the SoC has the registers for pinctrl, pinconf and gpio mixed up in the same register range. However, the IO core for the MT7622 SoC is completely distinct from anyone of previous MediaTek SoCs which already had support, such as the hardware internal, register address map and register detailed definition for each pin. Therefore, instead, the driver is being newly implemented by reusing generic methods provided from the core layer with GENERIC_PINCONF, GENERIC_PINCTRL_GROUPS, and GENERIC_PINMUX_FUNCTIONS for the sake of code simplicity and rid of superfluous code. Where the function of pins determined by groups is utilized in this driver which can help developers less confused with what combinations of pins effective on the SoC and even reducing the mistakes during the integration of those relevant boards. As the gpio_chip handling is also only a few lines, the driver also implements the gpio functionality directly through GPIOLIB. Signed-off-by: Sean Wang <sean.wang@mediatek.com> Reviewed-by: Biao Huang <biao.huang@mediatek.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
e3fd24a574
commit
d6ed935513
@ -65,5 +65,5 @@ obj-$(CONFIG_PINCTRL_SUNXI) += sunxi/
|
|||||||
obj-y += ti/
|
obj-y += ti/
|
||||||
obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
|
obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
|
||||||
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
||||||
obj-$(CONFIG_PINCTRL_MTK) += mediatek/
|
obj-y += mediatek/
|
||||||
obj-$(CONFIG_PINCTRL_ZX) += zte/
|
obj-$(CONFIG_PINCTRL_ZX) += zte/
|
||||||
|
@ -32,6 +32,16 @@ config PINCTRL_MT8127
|
|||||||
select PINCTRL_MTK
|
select PINCTRL_MTK
|
||||||
|
|
||||||
# For ARMv8 SoCs
|
# For ARMv8 SoCs
|
||||||
|
config PINCTRL_MT7622
|
||||||
|
bool "MediaTek MT7622 pin control"
|
||||||
|
depends on OF
|
||||||
|
depends on ARM64 || COMPILE_TEST
|
||||||
|
select GENERIC_PINCONF
|
||||||
|
select GENERIC_PINCTRL_GROUPS
|
||||||
|
select GENERIC_PINMUX_FUNCTIONS
|
||||||
|
select GPIOLIB
|
||||||
|
select OF_GPIO
|
||||||
|
|
||||||
config PINCTRL_MT8173
|
config PINCTRL_MT8173
|
||||||
bool "Mediatek MT8173 pin control"
|
bool "Mediatek MT8173 pin control"
|
||||||
depends on OF
|
depends on OF
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Core
|
# Core
|
||||||
obj-y += pinctrl-mtk-common.o
|
obj-$(CONFIG_PINCTRL_MTK) += pinctrl-mtk-common.o
|
||||||
|
|
||||||
# SoC Drivers
|
# SoC Drivers
|
||||||
obj-$(CONFIG_PINCTRL_MT2701) += pinctrl-mt2701.o
|
obj-$(CONFIG_PINCTRL_MT2701) += pinctrl-mt2701.o
|
||||||
obj-$(CONFIG_PINCTRL_MT8135) += pinctrl-mt8135.o
|
obj-$(CONFIG_PINCTRL_MT8135) += pinctrl-mt8135.o
|
||||||
obj-$(CONFIG_PINCTRL_MT8127) += pinctrl-mt8127.o
|
obj-$(CONFIG_PINCTRL_MT8127) += pinctrl-mt8127.o
|
||||||
|
obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o
|
||||||
obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o
|
obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o
|
||||||
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
|
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
|
||||||
|
1595
drivers/pinctrl/mediatek/pinctrl-mt7622.c
Normal file
1595
drivers/pinctrl/mediatek/pinctrl-mt7622.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user