linux/drivers/pinctrl/mediatek
Chen-Yu Tsai 8a6c8f2876 pinctrl: mediatek: paris: Rework support for PIN_CONFIG_{INPUT,OUTPUT}_ENABLE
[ Upstream commit c5d3b64c56 ]

There is a misinterpretation of some of the PIN_CONFIG_* options in this
driver library. PIN_CONFIG_OUTPUT_ENABLE should refer to a buffer or
switch in the output direction of the electrical path. The MediaTek
hardware does not have such a thing. The driver incorrectly maps this
option to the GPIO function's direction.

Likewise, PIN_CONFIG_INPUT_ENABLE should refer to a buffer or switch in
the input direction. The hardware does have such a mechanism, and is
mapped to the IES bit. The driver however sets the direction in addition
to the IES bit, which is incorrect. On readback, the IES bit isn't even
considered.

Ironically, the driver does not support readback for PIN_CONFIG_OUTPUT,
while its readback of PIN_CONFIG_{INPUT,OUTPUT}_ENABLE is what it should
be doing for PIN_CONFIG_OUTPUT.

Rework support for these three options, so that PIN_CONFIG_OUTPUT_ENABLE
is completely removed, PIN_CONFIG_INPUT_ENABLE is only linked to the IES
bit, and PIN_CONFIG_OUTPUT is linked to the GPIO function's direction
and output level.

Fixes: 805250982b ("pinctrl: mediatek: add pinctrl-paris that implements the vendor dt-bindings")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Message-ID: <20240327091336.3434141-3-wenst@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-05-17 11:55:54 +02:00
..
Kconfig pinctrl: mediatek: add mt8188 driver 2022-08-25 14:50:44 +02:00
Makefile pinctrl: mediatek: add mt8188 driver 2022-08-25 14:50:44 +02:00
mtk-eint.c pinctrl: meditatek: Startup with the IRQs disabled 2022-11-22 21:05:18 +01:00
mtk-eint.h pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-moore.c pinctrl: mediatek: pinctrl-moore: Simplify with dev_err_probe() 2022-03-15 01:24:16 +01:00
pinctrl-moore.h pinctrl: mtk: Fix up GPIO includes 2018-09-18 16:38:27 -07:00
pinctrl-mt2701.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt2712.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt6397.c pinctrl: mediatek: don't hardcode mode encoding in common code 2021-05-27 16:50:15 +02:00
pinctrl-mt6765.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt6779.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt6795.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt6797.c pinctrl: mediatek: paris: Unify probe function by using OF match data 2022-03-17 02:06:52 +01:00
pinctrl-mt7622.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt7623.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt7629.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt7986.c pinctrl: mediatek: fix the pinconf register offset of some pins 2022-12-31 13:32:10 +01:00
pinctrl-mt8127.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8135.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8167.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8173.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8183.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8186.c pinctrl: mediatek: Drop bogus slew rate register range for MT8186 2024-03-26 18:20:46 -04:00
pinctrl-mt8188.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8192.c pinctrl: mediatek: Drop bogus slew rate register range for MT8192 2024-03-26 18:20:46 -04:00
pinctrl-mt8195.c pinctrl: mediatek: Fix the drive register definition of some Pins 2023-02-14 19:11:50 +01:00
pinctrl-mt8365.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mt8516.c pinctrl: mediatek: Fix EINT pins input debounce time configuration 2022-11-14 14:20:41 +01:00
pinctrl-mtk-common-v2.c pinctrl: mediatek: common-v2: Fix bias-disable for PULL_PU_PD_RSEL_TYPE 2022-11-09 09:34:38 +01:00
pinctrl-mtk-common-v2.h pinctrl: mediatek: support rsel feature 2021-10-03 00:43:36 +02:00
pinctrl-mtk-common.c pinctrl: mediatek: common-v1: fix semicolon.cocci warnings 2022-03-27 14:00:42 +02:00
pinctrl-mtk-common.h pinctrl: mediatek: common-v1: Commonize spec_ies_smt_set callback 2022-03-17 02:06:53 +01:00
pinctrl-mtk-mt2701.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt2712.h pinctrl: mediatek: Use the correct style for SPDX License Identifier 2019-12-12 11:30:33 +01:00
pinctrl-mtk-mt6397.h pinctrl: mtk: fix check warnings. 2018-03-26 10:58:33 +02:00
pinctrl-mtk-mt6765.h pinctrl: mediatek: add MT6765 pinctrl driver 2018-09-21 09:12:55 -07:00
pinctrl-mtk-mt6779.h pinctrl: mediatek: add pinctrl support for MT6779 SoC 2020-08-04 01:29:09 +02:00
pinctrl-mtk-mt6795.h pinctrl: mediatek: Add pinctrl driver for MT6795 Helio X10 2022-05-19 15:11:15 +02:00
pinctrl-mtk-mt6797.h pinctrl: mediatek: Add initial pinctrl driver for MT6797 SoC 2018-11-15 11:05:54 +01:00
pinctrl-mtk-mt8127.h pinctrl: mtk: fix check warnings. 2018-03-26 10:58:33 +02:00
pinctrl-mtk-mt8135.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt8167.h pinctrl: mediatek: Add MT8167 Pinctrl driver 2020-09-27 11:20:09 +02:00
pinctrl-mtk-mt8173.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt8183.h pinctrl: mediatek: add MT8183 pinctrl driver 2018-09-18 14:53:29 -07:00
pinctrl-mtk-mt8186.h pinctrl: add pinctrl driver on mt8186 2022-03-15 01:00:03 +01:00
pinctrl-mtk-mt8188.h pinctrl: mediatek: add mt8188 driver 2022-08-25 14:50:44 +02:00
pinctrl-mtk-mt8192.h pinctrl: mediatek: Add pinctrl driver for mt8192 2020-08-27 10:50:57 +02:00
pinctrl-mtk-mt8195.h pinctrl: add pinctrl driver on mt8195 2021-04-22 01:53:02 +02:00
pinctrl-mtk-mt8365.h pinctrl: mediatek: add support for mt8365 SoC 2021-05-27 16:50:15 +02:00
pinctrl-mtk-mt8516.h pinctrl: mediatek: Add MT8516 Pinctrl driver 2019-05-03 07:53:13 +01:00
pinctrl-paris.c pinctrl: mediatek: paris: Rework support for PIN_CONFIG_{INPUT,OUTPUT}_ENABLE 2024-05-17 11:55:54 +02:00
pinctrl-paris.h pinctrl: mediatek: paris: Unify probe function by using OF match data 2022-03-17 02:06:52 +01:00