mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
UPSTREAM: pinctrl: sprd: Use the correct pin output configuration
The Spreadtrum pin controller did not supply registers to set high level
or low level for output mode, instead we should let the pin controller
current configuration drive values on the line. So we should use the
PIN_CONFIG_OUTPUT_ENABLE configuration to enable or disable the output
mode.
bug: 153500755
Change-Id: I290165a7239ddf75281d9a4eaf357cd576f1d009
[Baolin Wang changes the commit message]
Fixes: 41d32cfce1 ("pinctrl: sprd: Add Spreadtrum pin control driver")
Signed-off-by: Linhua Xu <linhua.xu@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
Link: https://lore.kernel.org/r/8a6f91b49c17beb218e46b23084f59a7c7260f86.1585124562.git.baolin.wang7@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit bb0f472f96fa2bda2c3e412cd84f16b15d992a56)
This commit is contained in:
parent
88f0b4dcb5
commit
def299a7a6
1 changed files with 7 additions and 3 deletions
|
|
@ -464,7 +464,7 @@ static int sprd_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin_id,
|
|||
case PIN_CONFIG_INPUT_ENABLE:
|
||||
arg = (reg >> SLEEP_INPUT_SHIFT) & SLEEP_INPUT_MASK;
|
||||
break;
|
||||
case PIN_CONFIG_OUTPUT:
|
||||
case PIN_CONFIG_OUTPUT_ENABLE:
|
||||
arg = reg & SLEEP_OUTPUT_MASK;
|
||||
break;
|
||||
case PIN_CONFIG_DRIVE_STRENGTH:
|
||||
|
|
@ -635,9 +635,13 @@ static int sprd_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin_id,
|
|||
shift = SLEEP_INPUT_SHIFT;
|
||||
}
|
||||
break;
|
||||
case PIN_CONFIG_OUTPUT:
|
||||
case PIN_CONFIG_OUTPUT_ENABLE:
|
||||
if (is_sleep_config == true) {
|
||||
val |= SLEEP_OUTPUT;
|
||||
if (arg > 0)
|
||||
val |= SLEEP_OUTPUT;
|
||||
else
|
||||
val &= ~SLEEP_OUTPUT;
|
||||
|
||||
mask = SLEEP_OUTPUT_MASK;
|
||||
shift = SLEEP_OUTPUT_SHIFT;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue