ssbi-gpio did not have any irqchip support so consumers of this in device tree would need to call gpio[d]_to_irq() in order to get the proper IRQ on the underlying PMIC. IRQ chips in device tree should be usable from the start without the consumer having to make an additional call to get the proper IRQ on the parent. This patch adds hierarchical IRQ chip support to the ssbi-gpio code to correct this issue. The constant PM8XXX_GPIO_PHYSICAL_OFFSET is introduced to replace the hardcoded '1' that previously existed in two places in this driver to improve code readability. This change was tested on an APQ8060 DragonBoard. Signed-off-by: Brian Masney <masneyb@onstation.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
177 lines
5.7 KiB
Text
177 lines
5.7 KiB
Text
if (ARCH_QCOM || COMPILE_TEST)
|
|
|
|
config PINCTRL_MSM
|
|
bool
|
|
select PINMUX
|
|
select PINCONF
|
|
select GENERIC_PINCONF
|
|
select GPIOLIB_IRQCHIP
|
|
|
|
config PINCTRL_APQ8064
|
|
tristate "Qualcomm APQ8064 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm APQ8064 platform.
|
|
|
|
config PINCTRL_APQ8084
|
|
tristate "Qualcomm APQ8084 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm APQ8084 platform.
|
|
|
|
config PINCTRL_IPQ4019
|
|
tristate "Qualcomm IPQ4019 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm IPQ4019 platform.
|
|
|
|
config PINCTRL_IPQ8064
|
|
tristate "Qualcomm IPQ8064 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm IPQ8064 platform.
|
|
|
|
config PINCTRL_IPQ8074
|
|
tristate "Qualcomm Technologies, Inc. IPQ8074 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for
|
|
the Qualcomm Technologies Inc. TLMM block found on the
|
|
Qualcomm Technologies Inc. IPQ8074 platform. Select this for
|
|
IPQ8074.
|
|
|
|
config PINCTRL_MSM8660
|
|
tristate "Qualcomm 8660 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm 8660 platform.
|
|
|
|
config PINCTRL_MSM8960
|
|
tristate "Qualcomm 8960 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm 8960 platform.
|
|
|
|
config PINCTRL_MDM9615
|
|
tristate "Qualcomm 9615 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm 9615 platform.
|
|
|
|
config PINCTRL_MSM8X74
|
|
tristate "Qualcomm 8x74 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm 8974 platform.
|
|
|
|
config PINCTRL_MSM8916
|
|
tristate "Qualcomm 8916 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found on the Qualcomm 8916 platform.
|
|
|
|
config PINCTRL_MSM8994
|
|
tristate "Qualcomm 8994 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm 8994 platform. The
|
|
Qualcomm 8992 platform is also supported by this driver.
|
|
|
|
config PINCTRL_MSM8996
|
|
tristate "Qualcomm MSM8996 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm MSM8996 platform.
|
|
|
|
config PINCTRL_MSM8998
|
|
tristate "Qualcomm MSM8998 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm TLMM block found in the Qualcomm MSM8998 platform.
|
|
|
|
config PINCTRL_QCS404
|
|
tristate "Qualcomm QCS404 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
TLMM block found in the Qualcomm QCS404 platform.
|
|
|
|
config PINCTRL_QDF2XXX
|
|
tristate "Qualcomm Technologies QDF2xxx pin controller driver"
|
|
depends on GPIOLIB && ACPI
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the GPIO driver for the TLMM block found on the
|
|
Qualcomm Technologies QDF2xxx SOCs.
|
|
|
|
config PINCTRL_QCOM_SPMI_PMIC
|
|
tristate "Qualcomm SPMI PMIC pin controller driver"
|
|
depends on GPIOLIB && OF && SPMI
|
|
select REGMAP_SPMI
|
|
select PINMUX
|
|
select PINCONF
|
|
select GENERIC_PINCONF
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm GPIO and MPP blocks found in the Qualcomm PMIC's chips,
|
|
which are using SPMI for communication with SoC. Example PMIC's
|
|
devices are pm8841, pm8941 and pma8084.
|
|
|
|
config PINCTRL_QCOM_SSBI_PMIC
|
|
tristate "Qualcomm SSBI PMIC pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINMUX
|
|
select PINCONF
|
|
select GENERIC_PINCONF
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm GPIO and MPP blocks found in the Qualcomm PMIC's chips,
|
|
which are using SSBI for communication with SoC. Example PMIC's
|
|
devices are pm8058 and pm8921.
|
|
|
|
config PINCTRL_SDM660
|
|
tristate "Qualcomm Technologies Inc SDM660 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm Technologies Inc TLMM block found on the Qualcomm
|
|
Technologies Inc SDM660 platform.
|
|
|
|
config PINCTRL_SDM845
|
|
tristate "Qualcomm Technologies Inc SDM845 pin controller driver"
|
|
depends on GPIOLIB && OF
|
|
select PINCTRL_MSM
|
|
help
|
|
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
|
|
Qualcomm Technologies Inc TLMM block found on the Qualcomm
|
|
Technologies Inc SDM845 platform.
|
|
|
|
endif
|