aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2017-07-15 22:50:41 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2017-09-18 20:34:55 +0200
commit34a422794ddab738408edc7e3980ccbc14f28af4 (patch)
tree06f99aeb1acab719dea0a5743d44c2026613edbb /target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch
parente080a7ce07ee8cd63c71e1469853a233d9bc7a4c (diff)
downloadupstream-34a422794ddab738408edc7e3980ccbc14f28af4.tar.gz
upstream-34a422794ddab738408edc7e3980ccbc14f28af4.tar.bz2
upstream-34a422794ddab738408edc7e3980ccbc14f28af4.zip
sunxi: Backport patches needed for A64
This backports multiple patches from kernel 4.10 which are adding missing support for the A64 and the pine64 board. These are the device tree files, the pinctlk and the clock driver. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch')
-rw-r--r--target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch b/target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch
new file mode 100644
index 0000000000..61d6102c92
--- /dev/null
+++ b/target/linux/sunxi/patches-4.9/0032-pinctrl-sunxi-Handle-bias-disable.patch
@@ -0,0 +1,42 @@
+From 07fe64ba213f36ca8f6ffd8c4d5893f022744fdb Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+Date: Tue, 11 Oct 2016 17:46:01 +0200
+Subject: pinctrl: sunxi: Handle bias disable
+
+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.
+
+Acked-by: Chen-Yu Tsai <wens@csie.org>
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ drivers/pinctrl/sunxi/pinctrl-sunxi.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
++++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+@@ -165,6 +165,8 @@ static int sunxi_pctrl_parse_bias_prop(s
+ 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:
+@@ -401,6 +403,12 @@ static int sunxi_pconf_group_set(struct
+ | 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);