gpio: qcom: add new driver for SPMI gpios
authorNeil Armstrong <neil.armstrong@linaro.org>
Mon, 30 Jun 2025 16:04:44 +0000 (18:04 +0200)
committerCasey Connolly <casey.connolly@linaro.org>
Mon, 14 Jul 2025 13:35:24 +0000 (15:35 +0200)
commitd0ceeb944a4dba7f6893616cd80da7e95db72ba4
treead8b46f71018b66ae2cc36e18de1588662f21746
parent344e1798059ba65769272be3145736685bb25a7e
gpio: qcom: add new driver for SPMI gpios

The current qcom_pmic_gpio driver is too limited and doesn't
support state tracking for all pins like the Linux driver.

Adding full pinconf support would require adding the state
and it's much simpler to restart from scratch with a new
driver based on the Linux one adapted to the U-Boot GPIO
and Pinctrl APIs.

For now only the PMICs I've been able to validate are
added in the compatible list but we should be able to
add the entire list from the Linux driver.

There's a few difference from the Linux driver:
- no IRQ support
- uses the U-Boot GPIO flags that maps very well
- uses the gpio-ranges to get the pins count
- no debugfs but prints the pin state via pinmux callback

It uses the same CONFIG entry as the old one, since
the ultimate goal is to migrate entirely on this new
driver once we verify it doesn't break the older
platforms.

Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Acked-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250630-topic-sm8x50-pmic-gpio-pinctrl-new-v2-1-cc1512931197@linaro.org
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
drivers/gpio/Makefile
drivers/gpio/qcom_spmi_gpio.c [new file with mode: 0644]