linux/drivers/pinctrl/qcom
Richard Acayan 5e30210609 pinctrl: qcom: Add SDM660 LPASS LPI TLMM
The Snapdragon 660 has a Low-Power Island (LPI) TLMM for configuring
pins related to audio. Add the driver for this.
Also, this driver uses predefined pin_offsets for each pin taken from
downstream driver, which does not follow the usual 0x1000 distance
between pins and uses an array with predefined offsets that do not
follow any regular pattern [1].

[1] https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/LA.UM.7.2.c27-07400-sdm660.0/drivers/pinctrl/qcom/pinctrl-lpi.c#L107

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Co-developed-by: Nickolay Goppen <setotau@mainlining.org>
Signed-off-by: Nickolay Goppen <setotau@mainlining.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-09-10 15:35:42 +02:00
..
Kconfig pinctrl: qcom: Add SDM660 LPASS LPI TLMM 2025-09-10 15:35:42 +02:00
Kconfig.msm pinctrl: qcom: Add glymur pinctrl driver 2025-09-08 14:56:47 +02:00
Makefile pinctrl: qcom: Add SDM660 LPASS LPI TLMM 2025-09-10 15:35:42 +02:00
pinctrl-apq8064.c pinctrl: qcom: switch to devm_gpiochip_add_data() 2025-06-09 10:16:45 +02:00
pinctrl-apq8084.c pinctrl: qcom: switch to devm_gpiochip_add_data() 2025-06-09 10:16:45 +02:00
pinctrl-glymur.c pinctrl: qcom: Add glymur pinctrl driver 2025-09-08 14:56:47 +02:00
pinctrl-ipq4019.c pinctrl: qcom: switch to devm_gpiochip_add_data() 2025-06-09 10:16:45 +02:00
pinctrl-ipq5018.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-ipq5332.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-ipq5424.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-ipq6018.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-ipq8064.c pinctrl: qcom: switch to devm_gpiochip_add_data() 2025-06-09 10:16:45 +02:00
pinctrl-ipq8074.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-ipq9574.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-lpass-lpi.c pinctrl: qcom: lpass-lpi: Add ability to use custom pin offsets 2025-09-10 15:35:41 +02:00
pinctrl-lpass-lpi.h pinctrl: qcom: lpass-lpi: Add ability to use custom pin offsets 2025-09-10 15:35:41 +02:00
pinctrl-mdm9607.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-mdm9615.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-milos.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm.c pinctrl: generic: rename PIN_CONFIG_OUTPUT to LEVEL 2025-09-08 14:24:20 +02:00
pinctrl-msm.h pinctrl: qcom: add infrastructure for marking pin functions as GPIOs 2025-09-08 14:23:07 +02:00
pinctrl-msm8x74.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8226.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8660.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8909.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8916.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8917.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8953.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8960.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8976.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8994.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8996.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-msm8998.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-qcm2290.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-qcs404.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-qcs615.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-qcs8300.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-qdf2xxx.c pinctrl: qcom: switch to devm_gpiochip_add_data() 2025-06-09 10:16:45 +02:00
pinctrl-qdu1000.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sa8775p.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sar2130p.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sc7180.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sc7280-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sc7280.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sc8180x.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sc8280xp-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sc8280xp.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdm660-lpass-lpi.c pinctrl: qcom: Add SDM660 LPASS LPI TLMM 2025-09-10 15:35:42 +02:00
pinctrl-sdm660.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdm670.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdm845.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdx55.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdx65.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sdx75.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm4250-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm4450.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm6115-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm6115.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm6125.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm6350.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm6375.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm7150.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8150.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8250-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm8250.c pinctrl: qcom: sm8250: Add egpio support 2025-09-08 14:24:32 +02:00
pinctrl-sm8350-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm8350.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8450-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm8450.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8550-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm8550.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8650-lpass-lpi.c pinctrl: Switch back to struct platform_driver::remove() 2024-10-11 21:45:47 +02:00
pinctrl-sm8650.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-sm8750.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
pinctrl-spmi-gpio.c pinctrl: generic: rename PIN_CONFIG_OUTPUT to LEVEL 2025-09-08 14:24:20 +02:00
pinctrl-spmi-mpp.c pinctrl: generic: rename PIN_CONFIG_OUTPUT to LEVEL 2025-09-08 14:24:20 +02:00
pinctrl-ssbi-gpio.c pinctrl: generic: rename PIN_CONFIG_OUTPUT to LEVEL 2025-09-08 14:24:20 +02:00
pinctrl-ssbi-mpp.c pinctrl: generic: rename PIN_CONFIG_OUTPUT to LEVEL 2025-09-08 14:24:20 +02:00
pinctrl-x1e80100.c pinctrl: qcom: mark the `gpio` and `egpio` pins function as non-strict functions 2025-09-08 14:23:15 +02:00
tlmm-test.c pinctrl: qcom: add multi TLMM region option parameter 2025-07-03 23:44:21 +02:00