Skip to content

Commit 723e846

Browse files
Anjelique Melendezlinusw
authored andcommitted
pinctrl: qcom: spmi-gpio: Fix the GPIO strength mapping
The SPMI based PMICs have the HIGH and LOW GPIO output strength mappings interchanged, fix them. Signed-off-by: Anjelique Melendez <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Linus Walleij <[email protected]>
1 parent 4af95d0 commit 723e846

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

drivers/pinctrl/qcom/pinctrl-spmi-gpio.c

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@
101101
#define PMIC_GPIO_OUT_BUF_OPEN_DRAIN_NMOS 1
102102
#define PMIC_GPIO_OUT_BUF_OPEN_DRAIN_PMOS 2
103103

104+
#define PMIC_GPIO_OUT_STRENGTH_LOW 1
105+
#define PMIC_GPIO_OUT_STRENGTH_HIGH 3
106+
104107
/* PMIC_GPIO_REG_EN_CTL */
105108
#define PMIC_GPIO_REG_MASTER_EN_SHIFT 7
106109

@@ -439,7 +442,17 @@ static int pmic_gpio_config_get(struct pinctrl_dev *pctldev,
439442
arg = pad->pullup;
440443
break;
441444
case PMIC_GPIO_CONF_STRENGTH:
442-
arg = pad->strength;
445+
switch (pad->strength) {
446+
case PMIC_GPIO_OUT_STRENGTH_HIGH:
447+
arg = PMIC_GPIO_STRENGTH_HIGH;
448+
break;
449+
case PMIC_GPIO_OUT_STRENGTH_LOW:
450+
arg = PMIC_GPIO_STRENGTH_LOW;
451+
break;
452+
default:
453+
arg = pad->strength;
454+
break;
455+
}
443456
break;
444457
case PMIC_GPIO_CONF_ATEST:
445458
arg = pad->atest;
@@ -526,7 +539,17 @@ static int pmic_gpio_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
526539
case PMIC_GPIO_CONF_STRENGTH:
527540
if (arg > PMIC_GPIO_STRENGTH_LOW)
528541
return -EINVAL;
529-
pad->strength = arg;
542+
switch (arg) {
543+
case PMIC_GPIO_STRENGTH_HIGH:
544+
pad->strength = PMIC_GPIO_OUT_STRENGTH_HIGH;
545+
break;
546+
case PMIC_GPIO_STRENGTH_LOW:
547+
pad->strength = PMIC_GPIO_OUT_STRENGTH_LOW;
548+
break;
549+
default:
550+
pad->strength = arg;
551+
break;
552+
}
530553
break;
531554
case PMIC_GPIO_CONF_ATEST:
532555
if (!pad->lv_mv_type || arg > 4)

0 commit comments

Comments
 (0)