]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
gpio: qcom_pmic_gpio: add support for pm8550-gpio
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 10 Apr 2024 15:59:43 +0000 (17:59 +0200)
committerCaleb Connolly <caleb.connolly@linaro.org>
Tue, 23 Apr 2024 11:29:02 +0000 (13:29 +0200)
Add support for PM8550 GPIO controller variant, keep read-only
until the GPIO and Pinctrl setup is fixed for new PMICs.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
drivers/gpio/qcom_pmic_gpio.c

index 14a8210522bffddb9e7cd778ceb3de54517b2dc9..dfb70faf94b4bcce7bcc7d7abbb3de065df659d0 100644 (file)
@@ -35,6 +35,8 @@
 #define REG_SUBTYPE_GPIOC_8CH  0xd
 #define REG_SUBTYPE_GPIO_LV    0x10
 #define REG_SUBTYPE_GPIO_MV    0x11
+#define REG_SUBTYPE_GPIO_LV_VIN2          0x12
+#define REG_SUBTYPE_GPIO_MV_VIN3          0x13
 
 #define REG_STATUS             0x08
 #define REG_STATUS_VAL_MASK    0x1
@@ -322,9 +324,20 @@ static int qcom_gpio_probe(struct udevice *dev)
                return log_msg_ret("bad type", -ENXIO);
 
        val = pmic_reg_read(plat->pmic, plat->pid + REG_SUBTYPE);
-       if (val != REG_SUBTYPE_GPIO_4CH && val != REG_SUBTYPE_GPIOC_4CH &&
-           val != REG_SUBTYPE_GPIO_LV && val != REG_SUBTYPE_GPIO_MV)
+       switch (val) {
+       case REG_SUBTYPE_GPIO_4CH:
+       case REG_SUBTYPE_GPIOC_4CH:
+               plat->lv_mv_type = false;
+               break;
+       case REG_SUBTYPE_GPIO_LV:
+       case REG_SUBTYPE_GPIO_MV:
+       case REG_SUBTYPE_GPIO_LV_VIN2:
+       case REG_SUBTYPE_GPIO_MV_VIN3:
+               plat->lv_mv_type = true;
+               break;
+       default:
                return log_msg_ret("bad subtype", -ENXIO);
+       }
 
        plat->lv_mv_type = val == REG_SUBTYPE_GPIO_LV ||
                           val == REG_SUBTYPE_GPIO_MV;
@@ -351,6 +364,7 @@ static const struct udevice_id qcom_gpio_ids[] = {
        { .compatible = "qcom,pm8994-gpio" },   /* 22 GPIO's */
        { .compatible = "qcom,pm8998-gpio", .data = QCOM_PMIC_QUIRK_READONLY },
        { .compatible = "qcom,pms405-gpio" },
+       { .compatible = "qcom,pm8550-gpio", .data = QCOM_PMIC_QUIRK_READONLY },
        { }
 };