You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
From 223dba00b4072efc590c7d648f230db1b44186b9 Mon Sep 17 00:00:00 2001
|
|
From: Chen-Yu Tsai <wens@csie.org>
|
|
Date: Fri, 11 Nov 2016 17:50:34 +0800
|
|
Subject: pinctrl: sunxi: Fix PIN_CONFIG_BIAS_PULL_{DOWN,UP} argument
|
|
|
|
According to pinconf-generic.h, the argument for
|
|
PIN_CONFIG_BIAS_PULL_{DOWN,UP} is non-zero if the bias is enabled
|
|
with a pull up/down resistor, zero if it is directly connected
|
|
to VDD or ground.
|
|
|
|
Since Allwinner hardware uses a weak pull resistor internally,
|
|
the argument should be 1.
|
|
|
|
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
|
|
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|
---
|
|
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
|
|
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
|
|
@@ -291,12 +291,16 @@ static unsigned long *sunxi_pctrl_build_
|
|
|
|
if (sunxi_pctrl_has_bias_prop(node)) {
|
|
int pull = sunxi_pctrl_parse_bias_prop(node);
|
|
+ int arg = 0;
|
|
if (pull < 0) {
|
|
ret = pull;
|
|
goto err_free;
|
|
}
|
|
|
|
- pinconfig[idx++] = pinconf_to_config_packed(pull, 0);
|
|
+ if (pull != PIN_CONFIG_BIAS_DISABLE)
|
|
+ arg = 1; /* hardware uses weak pull resistors */
|
|
+
|
|
+ pinconfig[idx++] = pinconf_to_config_packed(pull, arg);
|
|
}
|
|
|
|
|
|
|