pinctrl: qcom: spmi-gpio: add support for LV_VIN2 and MV_VIN3 subtypes
authorDavid Collins <quic_collinsd@quicinc.com>
Mon, 12 Sep 2022 21:06:23 +0000 (14:06 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 19 Sep 2022 11:52:13 +0000 (13:52 +0200)
Add support for SPMI PMIC GPIO subtypes GPIO_LV_VIN2 and
GPIO_MV_VIN3.

GPIO_LV_VIN2 GPIOs support two input reference voltages: VIN0 and
VIN1.  These are typically connected to 1.8 V and 1.2 V supplies
respectively.

GPIO_MV_VIN3 GPIOs support three input reference voltages: VIN0,
VIN1, and VIN2.  These are typically connected to Vph, 1.8 V, and
1.2 V supplies respectively.

Signed-off-by: David Collins <quic_collinsd@quicinc.com>
Signed-off-by: Anjelique Melendez <quic_amelende@quicinc.com>
Link: https://lore.kernel.org/r/20220912210624.4527-2-quic_amelende@quicinc.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c

index 8ba3d5021f0b86c0ade00c47efbaeaf6647406f6..9534bdffe6fbd74bc1dd1ec1250c8a5195aa3274 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2012-2014, 2016-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/gpio/driver.h>
@@ -36,6 +37,8 @@
 #define PMIC_GPIO_SUBTYPE_GPIOC_8CH            0xd
 #define PMIC_GPIO_SUBTYPE_GPIO_LV              0x10
 #define PMIC_GPIO_SUBTYPE_GPIO_MV              0x11
+#define PMIC_GPIO_SUBTYPE_GPIO_LV_VIN2         0x12
+#define PMIC_GPIO_SUBTYPE_GPIO_MV_VIN3         0x13
 
 #define PMIC_MPP_REG_RT_STS                    0x10
 #define PMIC_MPP_REG_RT_STS_VAL_MASK           0x1
@@ -822,6 +825,16 @@ static int pmic_gpio_populate(struct pmic_gpio_state *state,
                pad->have_buffer = true;
                pad->lv_mv_type = true;
                break;
+       case PMIC_GPIO_SUBTYPE_GPIO_LV_VIN2:
+               pad->num_sources = 2;
+               pad->have_buffer = true;
+               pad->lv_mv_type = true;
+               break;
+       case PMIC_GPIO_SUBTYPE_GPIO_MV_VIN3:
+               pad->num_sources = 3;
+               pad->have_buffer = true;
+               pad->lv_mv_type = true;
+               break;
        default:
                dev_err(state->dev, "unknown GPIO type 0x%x\n", subtype);
                return -ENODEV;