Re: [PATCH v5 4/6] pinctrl: mediatek: add pinctrl support for MT6779 SoC
From: Sean Wang
Date: Thu Apr 02 2020 - 17:46:24 EST
Hi Hanks,
On Wed, Mar 25, 2020 at 2:31 AM Hanks Chen <hanks.chen@xxxxxxxxxxxx> wrote:
>
> This adds MT6779 pinctrl driver based on MediaTek pinctrl-paris core.
>
We can add some useful help text about MT6779 pinctrl, especially
about specific parts like virtual gpio and its attributes
Then Acked-by: Sean Wang <sean.wang@xxxxxxxxxx>
> Signed-off-by: Hanks Chen <hanks.chen@xxxxxxxxxxxx>
> Signed-off-by: Mars Cheng <mars.cheng@xxxxxxxxxxxx>
> Signed-off-by: Andy Teng <andy.teng@xxxxxxxxxxxx>
> ---
> drivers/pinctrl/mediatek/Kconfig | 7 +
> drivers/pinctrl/mediatek/Makefile | 1 +
> drivers/pinctrl/mediatek/pinctrl-mt6779.c | 775 +++++++++
> drivers/pinctrl/mediatek/pinctrl-mtk-mt6779.h | 2085 +++++++++++++++++++++++++
> 4 files changed, 2868 insertions(+)
> create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt6779.c
> create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt6779.h
>
> diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig
> index 701f9af..f628d01 100644
> --- a/drivers/pinctrl/mediatek/Kconfig
> +++ b/drivers/pinctrl/mediatek/Kconfig
> @@ -86,6 +86,13 @@ config PINCTRL_MT6765
> default ARM64 && ARCH_MEDIATEK
> select PINCTRL_MTK_PARIS
>
> +config PINCTRL_MT6779
> + bool "Mediatek MT6779 pin control"
> + depends on OF
> + depends on ARM64 || COMPILE_TEST
> + default ARM64 && ARCH_MEDIATEK
> + select PINCTRL_MTK_PARIS
> +
> config PINCTRL_MT6797
> bool "Mediatek MT6797 pin control"
> depends on OF
> diff --git a/drivers/pinctrl/mediatek/Makefile b/drivers/pinctrl/mediatek/Makefile
> index a74325a..59c1c60 100644
> --- a/drivers/pinctrl/mediatek/Makefile
> +++ b/drivers/pinctrl/mediatek/Makefile
> @@ -11,6 +11,7 @@ obj-$(CONFIG_PINCTRL_MT2712) += pinctrl-mt2712.o
> obj-$(CONFIG_PINCTRL_MT8135) += pinctrl-mt8135.o
> obj-$(CONFIG_PINCTRL_MT8127) += pinctrl-mt8127.o
> obj-$(CONFIG_PINCTRL_MT6765) += pinctrl-mt6765.o
> +obj-$(CONFIG_PINCTRL_MT6779) += pinctrl-mt6779.o
> obj-$(CONFIG_PINCTRL_MT6797) += pinctrl-mt6797.o
> obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o
> obj-$(CONFIG_PINCTRL_MT7623) += pinctrl-mt7623.o
> diff --git a/drivers/pinctrl/mediatek/pinctrl-mt6779.c b/drivers/pinctrl/mediatek/pinctrl-mt6779.c
> new file mode 100644
> index 0000000..145bf22
> --- /dev/null
> +++ b/drivers/pinctrl/mediatek/pinctrl-mt6779.c
> @@ -0,0 +1,775 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2019 MediaTek Inc.
> + * Author: Andy Teng <andy.teng@xxxxxxxxxxxx>
> + *
> + */
> +
> +#include "pinctrl-mtk-mt6779.h"
> +#include "pinctrl-paris.h"
> +
> +/* MT6779 have multiple bases to program pin configuration listed as the below:
> + * gpio:0x10005000, iocfg_rm:0x11C20000, iocfg_br:0x11D10000,
> + * iocfg_lm:0x11E20000, iocfg_lb:0x11E70000, iocfg_rt:0x11EA0000,
> + * iocfg_lt:0x11F20000, iocfg_tl:0x11F30000
> + * _i_based could be used to indicate what base the pin should be mapped into.
> + */
> +
> +#define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
> + PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
> + 32, 0)
> +
<snip>