
This series moves the Qualcomm pinctrl drivers from mach-snapdragon and mach-ipq40xx to drivers/pinctrl/qcom. It then makes the necessary changes to enable compatibility with Linux DTs.
The pinctrl hardware on most Qualcomm platforms is made up of "tiles", these are just banks of pins at different register addresses. The mapping between pin number and tile is totally arbitrary, this unfortunately means that it is necessary to have a map of pin to tile in order to support all pins. Up until now this driver has ignored tiles, meaning that the pin numbers and DT nodes are entirely different to the Linux DT and only a subset of pins are addressable.
Patch 2 solves this by introducing the pin_offset map, initially supporting SDM845. This map is used for all pin register lookups for both the pinctrl and GPIO drivers. Similarly to the clock/reset drivers these are both associated with a single DT node, where the pinctrl driver is responsible for binding the GPIO drivers.
Patch 3 introduces support for gpio-reserved-ranges, this property is used on some boards to mark pin ranges that shouldn't be touched (else firmware will trigger a fault and reset the board).
This series loosely depends on the associated clock driver cleanup which can be found here (Makefile and perhaps DTS conflicts):
https://lore.kernel.org/u-boot/20231024-b4-qcom-clk-v1-0-9d96359b9a82@linaro...
--- Caleb Connolly (6): pinctrl: qcom: move out of mach-snapdragon pinctrl: qcom: make compatible with linux DTs pinctrl: qcom: handle reserved ranges msm_qcom: use unsigned int pinctrl: qcom: move ipq4019 driver from mach-ipq40xx pinctrl: qcom: rename msm -> qcom
arch/arm/Kconfig | 1 + arch/arm/dts/dragonboard845c-uboot.dtsi | 2 +- arch/arm/dts/sdm845.dtsi | 16 +- arch/arm/dts/starqltechn-uboot.dtsi | 5 +- arch/arm/dts/starqltechn.dts | 16 +- arch/arm/mach-ipq40xx/Makefile | 8 - arch/arm/mach-ipq40xx/pinctrl-snapdragon.c | 166 -------------- arch/arm/mach-snapdragon/Kconfig | 4 + arch/arm/mach-snapdragon/Makefile | 5 - arch/arm/mach-snapdragon/pinctrl-sdm845.c | 44 ---- arch/arm/mach-snapdragon/pinctrl-snapdragon.c | 166 -------------- arch/arm/mach-snapdragon/pinctrl-snapdragon.h | 33 --- configs/dragonboard410c_defconfig | 2 +- configs/dragonboard845c_defconfig | 2 +- configs/qcs404evb_defconfig | 2 +- configs/starqltechn_defconfig | 2 +- drivers/gpio/Kconfig | 6 +- drivers/gpio/Makefile | 2 +- drivers/gpio/msm_gpio.c | 127 ----------- drivers/gpio/qcom_gpio.c | 148 +++++++++++++ drivers/pinctrl/Kconfig | 1 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/qcom/Kconfig | 46 ++++ drivers/pinctrl/qcom/Makefile | 10 + .../pinctrl/qcom}/pinctrl-apq8016.c | 33 ++- .../pinctrl/qcom}/pinctrl-apq8096.c | 33 ++- .../pinctrl/qcom}/pinctrl-ipq4019.c | 33 ++- drivers/pinctrl/qcom/pinctrl-qcom.c | 244 +++++++++++++++++++++ .../pinctrl/qcom/pinctrl-qcom.h | 17 +- .../pinctrl/qcom}/pinctrl-qcs404.c | 33 ++- drivers/pinctrl/qcom/pinctrl-sdm845.c | 99 +++++++++ include/qcom-gpio.h | 43 ++++ 32 files changed, 723 insertions(+), 627 deletions(-) --- base-commit: 34f2a2a3ec23b4d24b8020054aacfad1143bd430
// Caleb (they/them)