Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1494815

[PATCH 3/9] pinctrl: sunxi: Handle bias disable

From Maxime Ripard <maxime.ripard@free-electrons.com>
Newsgroups linux.kernel
Subject [PATCH 3/9] pinctrl: sunxi: Handle bias disable
Date 2016-10-03 12:30 +0200
Message-ID <so8Fs-3GE-31@gated-at.bofh.it> (permalink)
References <so8Fs-3GE-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


So far, putting NO_PULL in allwinner,pull was ignored, behaving like if
that property was not there at all.

Obviously, this is not the right thing to do, and in that case, we really
need to just disable the bias.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 drivers/pinctrl/sunxi/pinctrl-sunxi.c | 8 ++++++++
 1 file changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 5be455d5e252..6f6f1e0011e2 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -166,6 +166,8 @@ static int sunxi_pctrl_parse_bias_prop(struct device_node *node)
 		return -EINVAL;
 
 	switch (val) {
+	case SUN4I_PINCTRL_NO_PULL:
+		return PIN_CONFIG_BIAS_DISABLE;
 	case SUN4I_PINCTRL_PULL_UP:
 		return PIN_CONFIG_BIAS_PULL_UP;
 	case SUN4I_PINCTRL_PULL_DOWN:
@@ -402,6 +404,12 @@ static int sunxi_pconf_group_set(struct pinctrl_dev *pctldev,
 				| dlevel << sunxi_dlevel_offset(pin),
 				pctl->membase + sunxi_dlevel_reg(pin));
 			break;
+		case PIN_CONFIG_BIAS_DISABLE:
+			val = readl(pctl->membase + sunxi_pull_reg(pin));
+			mask = PULL_PINS_MASK << sunxi_pull_offset(pin);
+			writel((val & ~mask),
+			       pctl->membase + sunxi_pull_reg(pin));
+			break;
 		case PIN_CONFIG_BIAS_PULL_UP:
 			val = readl(pctl->membase + sunxi_pull_reg(pin));
 			mask = PULL_PINS_MASK << sunxi_pull_offset(pin);
-- 
git-series 0.8.10

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-03 12:30 +0200
  [PATCH 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-03 12:30 +0200
    Re: [PATCH 3/9] pinctrl: sunxi: Handle bias disable Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:20 +0200
  Re: [PATCH 8/9] ARM: sunxi: Remove useless allwinner,pull property Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200
  Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200
    Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-07 15:10 +0200
  Re: [PATCH 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200

csiph-web