android_kernel_motorola_sm6375/drivers/pinctrl
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Mario Limonciello 3b6f56021a pinctrl: amd: Use amd_pinconf_set() for all config options
[ Upstream commit 635a750d958e158e17af0f524bedc484b27fbb93 ]

On ASUS TUF A16 it is reported that the ITE5570 ACPI device connected to
GPIO 7 is causing an interrupt storm.  This issue doesn't happen on
Windows.

Comparing the GPIO register configuration between Windows and Linux
bit 20 has been configured as a pull up on Windows, but not on Linux.
Checking GPIO declaration from the firmware it is clear it *should* have
been a pull up on Linux as well.

```
GpioInt (Level, ActiveLow, Exclusive, PullUp, 0x0000,
	 "\\_SB.GPIO", 0x00, ResourceConsumer, ,)
{   // Pin list
0x0007
}
```

On Linux amd_gpio_set_config() is currently only used for programming
the debounce. Actually the GPIO core calls it with all the arguments
that are supported by a GPIO, pinctrl-amd just responds `-ENOTSUPP`.

To solve this issue expand amd_gpio_set_config() to support the other
arguments amd_pinconf_set() supports, namely `PIN_CONFIG_BIAS_PULL_DOWN`,
`PIN_CONFIG_BIAS_PULL_UP`, and `PIN_CONFIG_DRIVE_STRENGTH`.

Reported-by: Nik P <npliashechnikov@gmail.com>
Reported-by: Nathan Schulte <nmschulte@gmail.com>
Reported-by: Friedrich Vock <friedrich.vock@gmx.de>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217336
Reported-by: dridri85@gmail.com
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217493
Link: https://lore.kernel.org/linux-input/20230530154058.17594-1-friedrich.vock@gmx.de/
Tested-by: Jan Visser <starquake@linuxeverywhere.org>
Fixes: 2956b5d94a ("pinctrl / gpio: Introduce .set_config() callback for GPIO chips")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230705133005.577-3-mario.limonciello@amd.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-27 08:37:43 +02:00
..
actions
aspeed pinctrl: aspeed: Fix confusing types in return value 2023-02-22 12:50:32 +01:00
bcm
berlin
cirrus
freescale
intel pinctrl: cherryview: Return correct value if pin in push-pull mode 2023-07-27 08:37:16 +02:00
mediatek pinctrl: meditatek: Startup with the IRQs disabled 2022-12-19 12:24:16 +01:00
meson pinctrl: meson-axg: add missing GPIOA_18 gpio group 2023-06-14 10:59:58 +02:00
mvebu pinctrl: mvebu: Fix irq_of_parse_and_map() return value 2022-06-14 18:11:41 +02:00
nomadik pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map 2022-08-25 11:18:23 +02:00
nuvoton pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() 2022-04-15 14:18:29 +02:00
pxa
qcom pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed 2022-08-25 11:18:23 +02:00
samsung
sh-pfc
sirf
spear
sprd
stm32 pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain 2023-03-11 16:43:44 +01:00
sunxi pinctrl: sunxi: Add I/O bias setting for H6 R-PIO 2022-08-25 11:18:24 +02:00
tegra
ti
uniphier
vt8500
zte
core.c
core.h
devicetree.c pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map 2022-11-25 17:42:14 +01:00
devicetree.h
Kconfig
Makefile
pinconf-generic.c pinctrl: pinconf-generic: add missing of_node_put() 2023-01-18 11:41:06 +01:00
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl: amd: Use amd_pinconf_set() for all config options 2023-07-27 08:37:43 +02:00
pinctrl-amd.h pinctrl: amd: Detect internal GPIO0 debounce handling 2023-07-27 08:37:34 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c
pinctrl-at91-pio4.c pinctrl: at91-pio4: check return value of devm_kasprintf() 2023-07-27 08:37:17 +02:00
pinctrl-at91.c pinctrl: at91: use devm_kasprintf() to avoid potential leaks 2023-03-11 16:43:57 +01:00
pinctrl-at91.h
pinctrl-axp209.c
pinctrl-bm1880.c
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-da850-pupd.c
pinctrl-digicolor.c
pinctrl-falcon.c
pinctrl-gemini.c
pinctrl-ingenic.c
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c
pinctrl-max77620.c
pinctrl-mcp23s08.c
pinctrl-ocelot.c pinctrl: ocelot: Fix alt mode for ocelot 2023-04-05 11:16:44 +02:00
pinctrl-oxnas.c
pinctrl-palmas.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: fix use of irq_of_parse_and_map() 2022-05-09 09:03:25 +02:00
pinctrl-rk805.c
pinctrl-rockchip.c
pinctrl-rza1.c
pinctrl-rza2.c
pinctrl-rzn1.c
pinctrl-single.c pinctrl: single: fix potential NULL dereference 2023-02-22 12:50:32 +01:00
pinctrl-st.c
pinctrl-stmfx.c
pinctrl-sx150x.c
pinctrl-tb10x.c
pinctrl-u300.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c
pinmux.c
pinmux.h