Skip to content

Commit f8b05fe

Browse files
wangbaolin719linusw
authored andcommitted
pinctrl: sprd: Add PIN_CONFIG_BIAS_DISABLE configuration support
Add PIN_CONFIG_BIAS_DISABLE configuration support for Spreadtrum pin controller. Signed-off-by: Baolin Wang <[email protected]> Link: https://lore.kernel.org/r/66d373ddee61e8be2fcef49aac5e80bd58f14915.1570596606.git.baolin.wang@linaro.org Signed-off-by: Linus Walleij <[email protected]>
1 parent f086d1f commit f8b05fe

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

drivers/pinctrl/sprd/pinctrl-sprd.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,13 @@ static int sprd_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin_id,
484484
SLEEP_PULL_UP_MASK) << 16;
485485
arg |= (reg >> PULL_UP_SHIFT) & PULL_UP_MASK;
486486
break;
487+
case PIN_CONFIG_BIAS_DISABLE:
488+
if ((reg & (SLEEP_PULL_DOWN | SLEEP_PULL_UP)) ||
489+
(reg & (PULL_DOWN | PULL_UP_4_7K | PULL_UP_20K)))
490+
return -EINVAL;
491+
492+
arg = 1;
493+
break;
487494
case PIN_CONFIG_SLEEP_HARDWARE_STATE:
488495
arg = 0;
489496
break;
@@ -674,6 +681,16 @@ static int sprd_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin_id,
674681
shift = PULL_UP_SHIFT;
675682
}
676683
break;
684+
case PIN_CONFIG_BIAS_DISABLE:
685+
if (is_sleep_config == true) {
686+
val = shift = 0;
687+
mask = SLEEP_PULL_DOWN | SLEEP_PULL_UP;
688+
} else {
689+
val = shift = 0;
690+
mask = PULL_DOWN | PULL_UP_20K |
691+
PULL_UP_4_7K;
692+
}
693+
break;
677694
case PIN_CONFIG_SLEEP_HARDWARE_STATE:
678695
continue;
679696
default:

0 commit comments

Comments
 (0)