* [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework
@ 2016-10-11 15:45 Maxime Ripard
2016-10-11 15:45 ` [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code Maxime Ripard
` (8 more replies)
0 siblings, 9 replies; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:45 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
This patch set reworks the Allwinner pinctrl driver to support the generic
pin configuration and multiplexing bindings.
In the process, we also covered some lasting issues that were found: we
were ignoring the case where no pull-up was set, and while our binding was
saying that the allwinner,drive and allwinner,pull properties were
optional, the code was not able to deal with the case where they were not
present.
Changes from v1:
- Realloced the pinctrl_map array
- Detailed the generic properties we support
- Directly return the parsing functions return code
- Called kfree on the pinconfig directly
- Added Chen-Yu Acked-by
- Changed the patch 2 commit log as suggested
Maxime Ripard (9):
pinctrl: sunxi: Rework the pin config building code
pinctrl: sunxi: Use macros from bindings header file for DT parsing
pinctrl: sunxi: Handle bias disable
pinctrl: sunxi: Deal with configless pins
pinctrl: sunxi: Support generic binding
dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings
ARM: sunxi: Remove useless allwinner,drive property
ARM: sunxi: Remove useless allwinner,pull property
ARM: sunxi: Convert pinctrl nodes to generic bindings
Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 16 ++++-
arch/arm/boot/dts/ntc-gr8-evb.dts | 24 ++----
arch/arm/boot/dts/ntc-gr8.dtsi | 104 +++++++++------------------
arch/arm/boot/dts/sun4i-a10-a1000.dts | 12 +--
arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts | 14 +---
arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 14 +---
arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts | 38 +++-------
arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 6 +--
arch/arm/boot/dts/sun4i-a10-hackberry.dts | 12 +--
arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts | 16 +---
arch/arm/boot/dts/sun4i-a10-inet1.dts | 26 ++-----
arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 14 +---
arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts | 29 +++-----
arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 12 +--
arch/arm/boot/dts/sun4i-a10-marsboard.dts | 13 +--
arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-mk802.dts | 18 +----
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 27 ++-----
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 19 +----
arch/arm/boot/dts/sun4i-a10-pcduino2.dts | 6 +--
arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts | 32 +++-----
arch/arm/boot/dts/sun4i-a10.dtsi | 169 +++++++++++++++-----------------------------
arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts | 18 ++---
arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 29 +++-----
arch/arm/boot/dts/sun5i-a10s-mk802.dts | 19 +----
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 36 +++------
arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts | 20 ++---
arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts | 21 +----
arch/arm/boot/dts/sun5i-a10s.dtsi | 61 ++++++----------
arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts | 23 ++----
arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 22 ++----
arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 40 ++++------
arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 36 +++------
arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 17 +---
arch/arm/boot/dts/sun5i-a13.dtsi | 24 ++----
arch/arm/boot/dts/sun5i-r8-chip.dts | 12 +--
arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi | 33 +++------
arch/arm/boot/dts/sun5i.dtsi | 57 +++++----------
arch/arm/boot/dts/sun6i-a31-app4-evb1.dts | 6 +--
arch/arm/boot/dts/sun6i-a31-colombus.dts | 22 ++----
arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 23 ++----
arch/arm/boot/dts/sun6i-a31-i7.dts | 19 +----
arch/arm/boot/dts/sun6i-a31-m9.dts | 19 +----
arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts | 19 +----
arch/arm/boot/dts/sun6i-a31.dtsi | 136 ++++++++++++++---------------------
arch/arm/boot/dts/sun6i-a31s-primo81.dts | 20 ++---
arch/arm/boot/dts/sun6i-a31s-sina31s.dts | 13 +--
arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts | 29 +++-----
arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts | 9 +--
arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi | 14 +---
arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts | 27 ++-----
arch/arm/boot/dts/sun7i-a20-bananapi.dts | 26 ++-----
arch/arm/boot/dts/sun7i-a20-bananapro.dts | 37 +++-------
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 13 +--
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 38 +++-------
arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 24 ++----
arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 26 ++-----
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts | 7 +--
arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 30 +++-----
arch/arm/boot/dts/sun7i-a20-m3.dts | 6 +--
arch/arm/boot/dts/sun7i-a20-mk808c.dts | 12 +--
arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts | 32 +++-----
arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 27 ++-----
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts | 6 +--
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 33 +++------
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 28 +++----
arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 45 ++++--------
arch/arm/boot/dts/sun7i-a20-orangepi.dts | 38 +++-------
arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 25 ++----
arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 21 +----
arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 25 ++----
arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts | 13 +--
arch/arm/boot/dts/sun7i-a20.dtsi | 277 ++++++++++++++++++++++++++----------------------------------------------
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 95 ++++++++++---------------
arch/arm/boot/dts/sun8i-a23-evb.dts | 7 +--
arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts | 8 +--
arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts | 8 +--
arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts | 9 +--
arch/arm/boot/dts/sun8i-a33-olinuxino.dts | 18 +----
arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 11 +--
arch/arm/boot/dts/sun8i-a33.dtsi | 6 +--
arch/arm/boot/dts/sun8i-a83t.dtsi | 21 +----
arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 18 +----
arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 12 +--
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 26 ++-----
arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts | 18 +----
arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 18 +----
arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 18 +----
arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 10 +--
arch/arm/boot/dts/sun8i-h3.dtsi | 92 +++++++++---------------
arch/arm/boot/dts/sun8i-q8-common.dtsi | 9 +--
arch/arm/boot/dts/sun8i-r16-parrot.dts | 36 +++------
arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi | 26 ++-----
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 15 +---
arch/arm/boot/dts/sun9i-a80-optimus.dts | 33 +++------
arch/arm/boot/dts/sun9i-a80.dtsi | 54 +++++---------
arch/arm/boot/dts/sunxi-common-regulators.dtsi | 24 ++----
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
100 files changed, 1307 insertions(+), 1794 deletions(-)
--
git-series 0.8.10
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
@ 2016-10-11 15:45 ` Maxime Ripard
2016-10-20 12:47 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing Maxime Ripard
` (7 subsequent siblings)
8 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:45 UTC (permalink / raw)
To: linux-arm-kernel
In order to support more easily the generic pinctrl properties, rework the
pinctrl maps configuration and split it into several sub-functions.
One of the side-effects from that rework is that we only parse the pin
configuration once, since it's going to be common to every pin, instead of
having to parsing once for each pin.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 178 +++++++++++++++++++--------
1 file changed, 130 insertions(+), 48 deletions(-)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 54455af566ec..64f7f6dcc027 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -146,6 +146,110 @@ static int sunxi_pctrl_get_group_pins(struct pinctrl_dev *pctldev,
return 0;
}
+static bool sunxi_pctrl_has_bias_prop(struct device_node *node)
+{
+ return of_find_property(node, "allwinner,pull", NULL);
+}
+
+static bool sunxi_pctrl_has_drive_prop(struct device_node *node)
+{
+ return of_find_property(node, "allwinner,drive", NULL);
+}
+
+static int sunxi_pctrl_parse_bias_prop(struct device_node *node)
+{
+ u32 val;
+
+ if (of_property_read_u32(node, "allwinner,pull", &val))
+ return -EINVAL;
+
+ switch (val) {
+ case 1:
+ return PIN_CONFIG_BIAS_PULL_UP;
+ case 2:
+ return PIN_CONFIG_BIAS_PULL_DOWN;
+ }
+
+ return -EINVAL;
+}
+
+static int sunxi_pctrl_parse_drive_prop(struct device_node *node)
+{
+ u32 val;
+
+ if (of_property_read_u32(node, "allwinner,drive", &val))
+ return -EINVAL;
+
+ return (val + 1) * 10;
+}
+
+static const char *sunxi_pctrl_parse_function_prop(struct device_node *node)
+{
+ const char *function;
+ int ret;
+
+ ret = of_property_read_string(node, "allwinner,function", &function);
+ if (!ret)
+ return function;
+
+ return NULL;
+}
+
+static const char *sunxi_pctrl_find_pins_prop(struct device_node *node,
+ int *npins)
+{
+ int count;
+
+ count = of_property_count_strings(node, "allwinner,pins");
+ if (count > 0) {
+ *npins = count;
+ return "allwinner,pins";
+ }
+
+ return NULL;
+}
+
+static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
+ unsigned int *len)
+{
+ unsigned long *pinconfig;
+ unsigned int configlen = 0, idx = 0;
+
+ if (sunxi_pctrl_has_drive_prop(node))
+ configlen++;
+ if (sunxi_pctrl_has_bias_prop(node))
+ configlen++;
+
+ pinconfig = kzalloc(configlen * sizeof(*pinconfig), GFP_KERNEL);
+ if (!pinconfig)
+ return NULL;
+
+ if (sunxi_pctrl_has_drive_prop(node)) {
+ int drive = sunxi_pctrl_parse_drive_prop(node);
+ if (drive < 0)
+ goto err_free;
+
+ pinconfig[idx++] = pinconf_to_config_packed(PIN_CONFIG_DRIVE_STRENGTH,
+ drive);
+ }
+
+ if (sunxi_pctrl_has_bias_prop(node)) {
+ int pull = sunxi_pctrl_parse_bias_prop(node);
+ if (pull < 0)
+ goto err_free;
+
+ pinconfig[idx++] = pinconf_to_config_packed(pull, 0);
+ }
+
+
+ *len = configlen;
+ return pinconfig;
+
+err_free:
+ kfree(pinconfig);
+ return NULL;
+}
+
static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
struct device_node *node,
struct pinctrl_map **map,
@@ -154,38 +258,45 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
unsigned long *pinconfig;
struct property *prop;
- const char *function;
+ const char *function, *pin_prop;
const char *group;
- int ret, nmaps, i = 0;
- u32 val;
+ int ret, npins, nmaps, configlen = 0, i = 0;
*map = NULL;
*num_maps = 0;
- ret = of_property_read_string(node, "allwinner,function", &function);
- if (ret) {
- dev_err(pctl->dev,
- "missing allwinner,function property in node %s\n",
+ function = sunxi_pctrl_parse_function_prop(node);
+ if (!function) {
+ dev_err(pctl->dev, "missing function property in node %s\n",
node->name);
return -EINVAL;
}
- nmaps = of_property_count_strings(node, "allwinner,pins") * 2;
- if (nmaps < 0) {
- dev_err(pctl->dev,
- "missing allwinner,pins property in node %s\n",
+ pin_prop = sunxi_pctrl_find_pins_prop(node, &npins);
+ if (!pin_prop) {
+ dev_err(pctl->dev, "missing pins property in node %s\n",
node->name);
return -EINVAL;
}
+ /*
+ * We have two maps for each pin: one for the function, one
+ * for the configuration (bias, strength, etc)
+ */
+ nmaps = npins * 2;
*map = kmalloc(nmaps * sizeof(struct pinctrl_map), GFP_KERNEL);
if (!*map)
return -ENOMEM;
- of_property_for_each_string(node, "allwinner,pins", prop, group) {
+ pinconfig = sunxi_pctrl_build_pin_config(node, &configlen);
+ if (!pinconfig) {
+ ret = -EINVAL;
+ goto err_free_map;
+ }
+
+ of_property_for_each_string(node, pin_prop, prop, group) {
struct sunxi_pinctrl_group *grp =
sunxi_pinctrl_find_group_by_name(pctl, group);
- int j = 0, configlen = 0;
if (!grp) {
dev_err(pctl->dev, "unknown pin %s", group);
@@ -208,34 +319,6 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
(*map)[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
(*map)[i].data.configs.group_or_pin = group;
-
- if (of_find_property(node, "allwinner,drive", NULL))
- configlen++;
- if (of_find_property(node, "allwinner,pull", NULL))
- configlen++;
-
- pinconfig = kzalloc(configlen * sizeof(*pinconfig), GFP_KERNEL);
- if (!pinconfig) {
- kfree(*map);
- return -ENOMEM;
- }
-
- if (!of_property_read_u32(node, "allwinner,drive", &val)) {
- u16 strength = (val + 1) * 10;
- pinconfig[j++] =
- pinconf_to_config_packed(PIN_CONFIG_DRIVE_STRENGTH,
- strength);
- }
-
- if (!of_property_read_u32(node, "allwinner,pull", &val)) {
- enum pin_config_param pull = PIN_CONFIG_END;
- if (val == 1)
- pull = PIN_CONFIG_BIAS_PULL_UP;
- else if (val == 2)
- pull = PIN_CONFIG_BIAS_PULL_DOWN;
- pinconfig[j++] = pinconf_to_config_packed(pull, 0);
- }
-
(*map)[i].data.configs.configs = pinconfig;
(*map)[i].data.configs.num_configs = configlen;
@@ -245,19 +328,18 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
*num_maps = nmaps;
return 0;
+
+err_free_map:
+ kfree(map);
+ return ret;
}
static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
struct pinctrl_map *map,
unsigned num_maps)
{
- int i;
-
- for (i = 0; i < num_maps; i++) {
- if (map[i].type == PIN_MAP_TYPE_CONFIGS_GROUP)
- kfree(map[i].data.configs.configs);
- }
-
+ /* All the maps have the same pin config, free only the first one */
+ kfree(map[0].data.configs.configs);
kfree(map);
}
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
2016-10-11 15:45 ` [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-20 12:50 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard
` (6 subsequent siblings)
8 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Since we have some bindings header for our hardcoded flags, let's use them
when we can.
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 64f7f6dcc027..5be455d5e252 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -28,6 +28,8 @@
#include <linux/platform_device.h>
#include <linux/slab.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
#include "../core.h"
#include "../../gpio/gpiolib.h"
#include "pinctrl-sunxi.h"
@@ -164,9 +166,9 @@ static int sunxi_pctrl_parse_bias_prop(struct device_node *node)
return -EINVAL;
switch (val) {
- case 1:
+ case SUN4I_PINCTRL_PULL_UP:
return PIN_CONFIG_BIAS_PULL_UP;
- case 2:
+ case SUN4I_PINCTRL_PULL_DOWN:
return PIN_CONFIG_BIAS_PULL_DOWN;
}
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
2016-10-11 15:45 ` [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code Maxime Ripard
2016-10-11 15:46 ` [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-20 12:51 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins Maxime Ripard
` (5 subsequent siblings)
8 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
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>
---
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
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
` (2 preceding siblings ...)
2016-10-11 15:46 ` [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-18 7:47 ` Chen-Yu Tsai
2016-10-11 15:46 ` [PATCH v2 5/9] pinctrl: sunxi: Support generic binding Maxime Ripard
` (4 subsequent siblings)
8 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Even though the our binding had the assumption that the allwinner,pull and
allwinner,drive properties were optional, the code never took that into
account.
Fix that.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 53 ++++++++++++++++++++--------
1 file changed, 39 insertions(+), 14 deletions(-)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 6f6f1e0011e2..2ee8d48ed5d3 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -218,20 +218,29 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
{
unsigned long *pinconfig;
unsigned int configlen = 0, idx = 0;
+ int ret;
if (sunxi_pctrl_has_drive_prop(node))
configlen++;
if (sunxi_pctrl_has_bias_prop(node))
configlen++;
+ /*
+ * If we don't have any configuration, bail out
+ */
+ if (!configlen)
+ return NULL;
+
pinconfig = kzalloc(configlen * sizeof(*pinconfig), GFP_KERNEL);
if (!pinconfig)
- return NULL;
+ return ERR_PTR(-ENOMEM);
if (sunxi_pctrl_has_drive_prop(node)) {
int drive = sunxi_pctrl_parse_drive_prop(node);
- if (drive < 0)
+ if (drive < 0) {
+ ret = drive;
goto err_free;
+ }
pinconfig[idx++] = pinconf_to_config_packed(PIN_CONFIG_DRIVE_STRENGTH,
drive);
@@ -239,8 +248,10 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
if (sunxi_pctrl_has_bias_prop(node)) {
int pull = sunxi_pctrl_parse_bias_prop(node);
- if (pull < 0)
+ if (pull < 0) {
+ ret = pull;
goto err_free;
+ }
pinconfig[idx++] = pinconf_to_config_packed(pull, 0);
}
@@ -251,7 +262,7 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
err_free:
kfree(pinconfig);
- return NULL;
+ return ERR_PTR(ret);
}
static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
@@ -285,7 +296,10 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
/*
* We have two maps for each pin: one for the function, one
- * for the configuration (bias, strength, etc)
+ * for the configuration (bias, strength, etc).
+ *
+ * We might be slightly overshooting, since we might not have
+ * any configuration.
*/
nmaps = npins * 2;
*map = kmalloc(nmaps * sizeof(struct pinctrl_map), GFP_KERNEL);
@@ -293,8 +307,8 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
return -ENOMEM;
pinconfig = sunxi_pctrl_build_pin_config(node, &configlen);
- if (!pinconfig) {
- ret = -EINVAL;
+ if (IS_ERR(pinconfig)) {
+ ret = PTR_ERR(pinconfig);
goto err_free_map;
}
@@ -321,15 +335,24 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
i++;
- (*map)[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
- (*map)[i].data.configs.group_or_pin = group;
- (*map)[i].data.configs.configs = pinconfig;
- (*map)[i].data.configs.num_configs = configlen;
-
- i++;
+ if (pinconfig) {
+ (*map)[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
+ (*map)[i].data.configs.group_or_pin = group;
+ (*map)[i].data.configs.configs = pinconfig;
+ (*map)[i].data.configs.num_configs = configlen;
+ i++;
+ }
}
- *num_maps = nmaps;
+ *num_maps = i;
+
+ /*
+ * We know have the number of maps we need, we can resize our
+ * map array
+ */
+ *map = krealloc(*map, i * sizeof(struct pinctrl_map), GFP_KERNEL);
+ if (!map)
+ return -ENOMEM;
return 0;
@@ -342,6 +365,8 @@ static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
struct pinctrl_map *map,
unsigned num_maps)
{
+ unsigned long *pinconfig;
+
/* All the maps have the same pin config, free only the first one */
kfree(map[0].data.configs.configs);
kfree(map);
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 5/9] pinctrl: sunxi: Support generic binding
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
` (3 preceding siblings ...)
2016-10-11 15:46 ` [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-11 15:46 ` [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings Maxime Ripard
` (3 subsequent siblings)
8 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Our bindings are mostly irrelevant now that we have generic pinctrl
bindings that cover exactly the same uses cases.
Add support for the new ones, and obviously keep our old binding support in
order to keep the ABI stable.
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 48 ++++++++++++++++++++++++++--
1 file changed, 46 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 2ee8d48ed5d3..71b78566e871 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -150,18 +150,33 @@ static int sunxi_pctrl_get_group_pins(struct pinctrl_dev *pctldev,
static bool sunxi_pctrl_has_bias_prop(struct device_node *node)
{
- return of_find_property(node, "allwinner,pull", NULL);
+ return of_find_property(node, "bias-pull-up", NULL) ||
+ of_find_property(node, "bias-pull-down", NULL) ||
+ of_find_property(node, "bias-disable", NULL) ||
+ of_find_property(node, "allwinner,pull", NULL);
}
static bool sunxi_pctrl_has_drive_prop(struct device_node *node)
{
- return of_find_property(node, "allwinner,drive", NULL);
+ return of_find_property(node, "drive-strength", NULL) ||
+ of_find_property(node, "allwinner,drive", NULL);
}
static int sunxi_pctrl_parse_bias_prop(struct device_node *node)
{
u32 val;
+ /* Try the new style binding */
+ if (of_find_property(node, "bias-pull-up", NULL))
+ return PIN_CONFIG_BIAS_PULL_UP;
+
+ if (of_find_property(node, "bias-pull-down", NULL))
+ return PIN_CONFIG_BIAS_PULL_DOWN;
+
+ if (of_find_property(node, "bias-disable", NULL))
+ return PIN_CONFIG_BIAS_DISABLE;
+
+ /* And fall back to the old binding */
if (of_property_read_u32(node, "allwinner,pull", &val))
return -EINVAL;
@@ -181,6 +196,21 @@ static int sunxi_pctrl_parse_drive_prop(struct device_node *node)
{
u32 val;
+ /* Try the new style binding */
+ if (!of_property_read_u32(node, "drive-strength", &val)) {
+ /* We can't go below 10mA ... */
+ if (val < 10)
+ return -EINVAL;
+
+ /* ... and only up to 40 mA ... */
+ if (val > 40)
+ val = 40;
+
+ /* by steps of 10 mA */
+ return rounddown(val, 10);
+ }
+
+ /* And then fall back to the old binding */
if (of_property_read_u32(node, "allwinner,drive", &val))
return -EINVAL;
@@ -192,6 +222,12 @@ static const char *sunxi_pctrl_parse_function_prop(struct device_node *node)
const char *function;
int ret;
+ /* Try the generic binding */
+ ret = of_property_read_string(node, "function", &function);
+ if (!ret)
+ return function;
+
+ /* And fall back to our legacy one */
ret = of_property_read_string(node, "allwinner,function", &function);
if (!ret)
return function;
@@ -204,6 +240,14 @@ static const char *sunxi_pctrl_find_pins_prop(struct device_node *node,
{
int count;
+ /* Try the generic binding */
+ count = of_property_count_strings(node, "pins");
+ if (count > 0) {
+ *npins = count;
+ return "pins";
+ }
+
+ /* And fall back to our legacy one */
count = of_property_count_strings(node, "allwinner,pins");
if (count > 0) {
*npins = count;
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
` (4 preceding siblings ...)
2016-10-11 15:46 ` [PATCH v2 5/9] pinctrl: sunxi: Support generic binding Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-18 7:37 ` Chen-Yu Tsai
2016-10-18 12:43 ` Rob Herring
2016-10-11 15:46 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner,pull property Maxime Ripard
` (2 subsequent siblings)
8 siblings, 2 replies; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
The generic pin configuration and multiplexing should be preferred now,
even though we still support the old one.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 16 ++++++++++++++++
1 file changed, 16 insertions(+), 0 deletions(-)
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
index 69617220c5d6..ff351493be47 100644
--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
@@ -36,6 +36,22 @@ pins it needs, and how they should be configured, with regard to muxer
configuration, drive strength and pullups. If one of these options is
not set, its actual value will be unspecified.
+This driver supports the generic pin multiplexing and configuration
+bindings. For details on each properties, you can refer to
+./pinctrl-bindings.txt.
+
+Required sub-node properties:
+ - pins
+ - function
+
+Optional sub-node properties:
+ - bias-disable
+ - bias-pull-up
+ - bias-pull-down
+ - drive-strength
+
+*** Deprecated pin configuration and multiplexing binding
+
Required subnode-properties:
- allwinner,pins: List of strings containing the pin name.
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner,pull property
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
` (5 preceding siblings ...)
2016-10-11 15:46 ` [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings Maxime Ripard
@ 2016-10-11 15:46 ` Maxime Ripard
2016-10-18 7:39 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner, pull property Chen-Yu Tsai
2016-10-20 12:57 ` Linus Walleij
[not found] ` <076406072c137a50df41c4acb0c582a688792976.1476200742.git-series.maxime.ripard@free-electrons.com>
[not found] ` <e32d044d2d967f24f12d83eea50e7f14f2ae1073.1476200742.git-series.maxime.ripard@free-electrons.com>
8 siblings, 2 replies; 28+ messages in thread
From: Maxime Ripard @ 2016-10-11 15:46 UTC (permalink / raw)
To: linux-arm-kernel
The allwinner,pull property set to NO_PULL was really considered our
default (and wasn't even changing the default value in the code).
Remove these properties to make it obvious that we do not set anything in
such a case.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
arch/arm/boot/dts/ntc-gr8-evb.dts | 4 +-
arch/arm/boot/dts/ntc-gr8.dtsi | 14 +-----
arch/arm/boot/dts/sun4i-a10-a1000.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 1 +-
arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts | 4 +-
arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 1 +-
arch/arm/boot/dts/sun4i-a10-hackberry.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-inet1.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-marsboard.dts | 1 +-
arch/arm/boot/dts/sun4i-a10-mk802.dts | 3 +-
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 2 +-
arch/arm/boot/dts/sun4i-a10-pcduino2.dts | 1 +-
arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts | 3 +-
arch/arm/boot/dts/sun4i-a10.dtsi | 24 +--------
arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts | 1 +-
arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 2 +-
arch/arm/boot/dts/sun5i-a10s-mk802.dts | 2 +-
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 2 +-
arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts | 2 +-
arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts | 2 +-
arch/arm/boot/dts/sun5i-a10s.dtsi | 7 +--
arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 1 +-
arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 3 +-
arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 2 +-
arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 1 +-
arch/arm/boot/dts/sun5i-a13.dtsi | 3 +-
arch/arm/boot/dts/sun5i-r8-chip.dts | 2 +-
arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi | 2 +-
arch/arm/boot/dts/sun5i.dtsi | 7 +--
arch/arm/boot/dts/sun6i-a31-app4-evb1.dts | 1 +-
arch/arm/boot/dts/sun6i-a31-colombus.dts | 1 +-
arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 2 +-
arch/arm/boot/dts/sun6i-a31-i7.dts | 2 +-
arch/arm/boot/dts/sun6i-a31-m9.dts | 2 +-
arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts | 2 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 13 +----
arch/arm/boot/dts/sun6i-a31s-primo81.dts | 1 +-
arch/arm/boot/dts/sun6i-a31s-sina31s.dts | 1 +-
arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts | 3 +-
arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts | 3 +-
arch/arm/boot/dts/sun7i-a20-bananapi.dts | 2 +-
arch/arm/boot/dts/sun7i-a20-bananapro.dts | 5 +--
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 1 +-
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 6 +--
arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 4 +-
arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 4 +-
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts | 1 +-
arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 2 +-
arch/arm/boot/dts/sun7i-a20-m3.dts | 1 +-
arch/arm/boot/dts/sun7i-a20-mk808c.dts | 2 +-
arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts | 4 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 2 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts | 1 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 3 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 1 +-
arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 4 +-
arch/arm/boot/dts/sun7i-a20-orangepi.dts | 4 +-
arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 3 +-
arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 2 +-
arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 3 +-
arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts | 1 +-
arch/arm/boot/dts/sun7i-a20.dtsi | 37 +------------
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 10 +---
arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts | 1 +-
arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts | 1 +-
arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts | 1 +-
arch/arm/boot/dts/sun8i-a33-olinuxino.dts | 3 +-
arch/arm/boot/dts/sun8i-a33.dtsi | 1 +-
arch/arm/boot/dts/sun8i-a83t.dtsi | 3 +-
arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 3 +-
arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 2 +-
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts | 3 +-
arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 3 +-
arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 3 +-
arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 1 +-
arch/arm/boot/dts/sun8i-h3.dtsi | 12 +----
arch/arm/boot/dts/sun8i-r16-parrot.dts | 3 +-
arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi | 2 +-
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 1 +-
arch/arm/boot/dts/sun9i-a80-optimus.dts | 4 +-
arch/arm/boot/dts/sun9i-a80.dtsi | 6 +--
arch/arm/boot/dts/sunxi-common-regulators.dtsi | 4 +-
85 files changed, 0 insertions(+), 302 deletions(-)
diff --git a/arch/arm/boot/dts/ntc-gr8-evb.dts b/arch/arm/boot/dts/ntc-gr8-evb.dts
index 04a474471adc..5a97dea32f98 100644
--- a/arch/arm/boot/dts/ntc-gr8-evb.dts
+++ b/arch/arm/boot/dts/ntc-gr8-evb.dts
@@ -228,25 +228,21 @@
mmc0_cd_pin_gr8_evb: mmc0-cd-pin at 0 {
allwinner,pins = "PG0";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_pin_gr8_evb: usb0-id-pin at 0 {
allwinner,pins = "PG2";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_det_pin_gr8_evb: usb0-vbus-det-pin at 0 {
allwinner,pins = "PG1";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_gr8_evb: usb1-vbus-pin at 0 {
allwinner,pins = "PG13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/ntc-gr8.dtsi b/arch/arm/boot/dts/ntc-gr8.dtsi
index d6a499bfd795..1c46cd38d999 100644
--- a/arch/arm/boot/dts/ntc-gr8.dtsi
+++ b/arch/arm/boot/dts/ntc-gr8.dtsi
@@ -766,37 +766,31 @@
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PB15", "PB16";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PB17", "PB18";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2s0_data_pins_a: i2s0-data at 0 {
allwinner,pins = "PB6", "PB7", "PB8", "PB9";
allwinner,function = "i2s0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2s0_mclk_pins_a: i2s0-mclk at 0 {
allwinner,pins = "PB6", "PB7", "PB8", "PB9";
allwinner,function = "i2s0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir0_rx_pins_a: ir0 at 0 {
allwinner,pins = "PB4";
allwinner,function = "ir0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
lcd_rgb666_pins: lcd-rgb666 at 0 {
@@ -805,7 +799,6 @@
"PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
"PD24", "PD25", "PD26", "PD27";
allwinner,function = "lcd0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -813,7 +806,6 @@
"PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
nand_pins_a: nand-base0 at 0 {
@@ -822,25 +814,21 @@
"PC11", "PC12", "PC13", "PC14",
"PC15";
allwinner,function = "nand0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
nand_cs0_pins_a: nand-cs at 0 {
allwinner,pins = "PC4";
allwinner,function = "nand0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
nand_rb0_pins_a: nand-rb at 0 {
allwinner,pins = "PC6";
allwinner,function = "nand0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm0_pins_a: pwm0 at 0 {
allwinner,pins = "PB2";
allwinner,function = "pwm0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spdif_tx_pins_a: spdif at 0 {
@@ -852,13 +840,11 @@
uart1_pins_a: uart1 at 1 {
allwinner,pins = "PG3", "PG4";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_cts_rts_pins_a: uart1-cts-rts at 0 {
allwinner,pins = "PG5", "PG6";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index 035395a32212..4d8164afc671 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -188,13 +188,11 @@
emac_power_pin_a1000: emac_power_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_a1000: led_pins at 0 {
allwinner,pins = "PH10", "PH20";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index f11dcd82f468..e7188d2fb303 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -168,7 +168,6 @@
allwinner,pins = "PH20", "PH21";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
index e01bdd1f1b2b..b4b829d6008d 100644
--- a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
+++ b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
@@ -180,25 +180,21 @@
bl_en_pin_dsrv9703c: bl_en_pin at 0 {
allwinner,pins = "PH7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
codec_pa_pin: codec_pa_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
motor_pins: motor_pins at 0 {
allwinner,pins = "PB3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
touchscreen_pins: touchscreen_pins at 0 {
allwinner,pins = "PB13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index fbd02c7a5d43..57496a38b94a 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -158,7 +158,6 @@
codec_pa_pin: codec_pa_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 9b8134cb968d..de10ae48c6f6 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -131,13 +131,11 @@
hackberry_hogs: hogs at 0 {
allwinner,pins = "PH19";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb2_vbus_pin_hackberry: usb2_vbus_pin at 0 {
allwinner,pins = "PH12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-inet1.dts b/arch/arm/boot/dts/sun4i-a10-inet1.dts
index bb64e466c4e0..f78c17a9a298 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet1.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet1.dts
@@ -182,13 +182,11 @@
bl_en_pin_inet: bl_en_pin at 0 {
allwinner,pins = "PH7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
touchscreen_wake_pin: touchscreen_wake_pin at 0 {
allwinner,pins = "PB13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
index 65273bc7998c..e6ffaefed42d 100644
--- a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
+++ b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
@@ -165,13 +165,11 @@
emac_power_pin_q5: emac_power_pin at 0 {
allwinner,pins = "PH19";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_q5: led_pins at 0 {
allwinner,pins = "PH20";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-marsboard.dts b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
index c5916125bea8..001656eb9171 100644
--- a/arch/arm/boot/dts/sun4i-a10-marsboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
@@ -166,7 +166,6 @@
led_pins_marsboard: led_pins at 0 {
allwinner,pins = "PB5", "PB6", "PB7", "PB8";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802.dts b/arch/arm/boot/dts/sun4i-a10-mk802.dts
index 204e2b68d09f..9ce39f75188e 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802.dts
@@ -93,19 +93,16 @@
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin at 0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb2_vbus_pin_mk802: usb2_vbus_pin at 0 {
allwinner,pins = "PH12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
index e8e14a53b764..203d399f0f7b 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -170,14 +170,12 @@
ahci_pwr_pin_olinuxinolime: ahci_pwr_pin at 1 {
allwinner,pins = "PC3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_olinuxinolime: led_pins at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
index 7e94334420af..94cdef53ac11 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -172,13 +172,11 @@
led_pins_pcduino: led_pins at 0 {
allwinner,pins = "PH15", "PH16";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
key_pins_pcduino: key_pins at 0 {
allwinner,pins = "PH17", "PH18", "PH19";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
index 05de4050a831..9656ec9b51ae 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
@@ -59,7 +59,6 @@
usb2_vbus_pin_pcduino2: usb2_vbus_pin at 0 {
allwinner,pins = "PD2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
index 459c7a2dbee7..9dedd808bde8 100644
--- a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
@@ -166,19 +166,16 @@
bl_en_pin_protab: bl_en_pin at 0 {
allwinner,pins = "PH7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
codec_pa_pin: codec_pa_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
touchscreen_pins: touchscreen_pins at 0 {
allwinner,pins = "PA5", "PB13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index ae562272589c..36f3416c4c32 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -980,49 +980,41 @@
"PA11", "PA12", "PA13", "PA14",
"PA15", "PA16";
allwinner,function = "emac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PB18", "PB19";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PB20", "PB21";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir0_rx_pins_a: ir0 at 0 {
allwinner,pins = "PB4";
allwinner,function = "ir0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir0_tx_pins_a: ir0 at 1 {
allwinner,pins = "PB3";
allwinner,function = "ir0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir1_rx_pins_a: ir1 at 0 {
allwinner,pins = "PB23";
allwinner,function = "ir1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir1_tx_pins_a: ir1 at 1 {
allwinner,pins = "PB22";
allwinner,function = "ir1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -1030,7 +1022,6 @@
"PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_reference_design: mmc0_cd_pin at 0 {
@@ -1042,25 +1033,21 @@
ps20_pins_a: ps20 at 0 {
allwinner,pins = "PI20", "PI21";
allwinner,function = "ps2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ps21_pins_a: ps21 at 0 {
allwinner,pins = "PH12", "PH13";
allwinner,function = "ps2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm0_pins_a: pwm0 at 0 {
allwinner,pins = "PB2";
allwinner,function = "pwm";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm1_pins_a: pwm1 at 0 {
allwinner,pins = "PI3";
allwinner,function = "pwm";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spdif_tx_pins_a: spdif at 0 {
@@ -1072,67 +1059,56 @@
spi0_pins_a: spi0 at 0 {
allwinner,pins = "PI11", "PI12", "PI13";
allwinner,function = "spi0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi0_cs0_pins_a: spi0_cs0 at 0 {
allwinner,pins = "PI10";
allwinner,function = "spi0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi1_pins_a: spi1 at 0 {
allwinner,pins = "PI17", "PI18", "PI19";
allwinner,function = "spi1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi1_cs0_pins_a: spi1_cs0 at 0 {
allwinner,pins = "PI16";
allwinner,function = "spi1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_pins_a: spi2 at 0 {
allwinner,pins = "PC20", "PC21", "PC22";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_pins_b: spi2 at 1 {
allwinner,pins = "PB15", "PB16", "PB17";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_cs0_pins_a: spi2_cs0 at 0 {
allwinner,pins = "PC19";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_cs0_pins_b: spi2_cs0 at 1 {
allwinner,pins = "PB14";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_b: uart0 at 1 {
allwinner,pins = "PF2", "PF4";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_pins_a: uart1 at 0 {
allwinner,pins = "PA10", "PA11";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
index 813e18c011da..8d1e414c0a3a 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
@@ -118,7 +118,6 @@
allwinner,pins = "PB2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
index 3c79e3536521..e3438a685c71 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
@@ -144,14 +144,12 @@
mmc1_vcc_en_pin_t004: mmc1_vcc_en_pin at 0 {
allwinner,pins = "PB18";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_t004: led_pins at 0 {
allwinner,pins = "PB2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s-mk802.dts b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
index 940139145fd5..405c1d519301 100644
--- a/arch/arm/boot/dts/sun5i-a10s-mk802.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
@@ -118,7 +118,6 @@
led_pins_mk802: led_pins at 0 {
allwinner,pins = "PB2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_mk802: mmc0_cd_pin at 0 {
@@ -130,7 +129,6 @@
usb1_vbus_pin_mk802: usb1_vbus_pin at 0 {
allwinner,pins = "PB10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index 26d74958bd57..125243305525 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -217,13 +217,11 @@
allwinner,pins = "PE3";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_olinuxino_m: usb1_vbus_pin at 0 {
allwinner,pins = "PB10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
index 84a3bf817c3b..e2dceda4889b 100644
--- a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
@@ -110,13 +110,11 @@
allwinner,pins = "PB2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_r7: usb1_vbus_pin at 0 {
allwinner,pins = "PG13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
index 56a6982773a9..f40451bffb84 100644
--- a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
@@ -148,7 +148,6 @@
led_pins_wobo_i5: led_pins at 0 {
allwinner,pins = "PB2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_wobo_i5: mmc0_cd_pin at 0 {
@@ -160,7 +159,6 @@
emac_power_pin_wobo: emac_power_pin at 0 {
allwinner,pins = "PA02";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index 9aa80630e00f..4e014cb11e81 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -202,13 +202,11 @@
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PB19", "PB20";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart2_pins_a: uart2 at 0 {
allwinner,pins = "PC18", "PC19";
allwinner,function = "uart2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
emac_pins_a: emac0 at 0 {
@@ -218,7 +216,6 @@
"PA11", "PA12", "PA13", "PA14",
"PA15", "PA16";
allwinner,function = "emac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
emac_pins_b: emac0 at 1 {
@@ -228,7 +225,6 @@
"PD21", "PD22", "PD23", "PD24",
"PD25", "PD26", "PD27";
allwinner,function = "emac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc1_pins_a: mmc1 at 0 {
@@ -236,19 +232,16 @@
"PG6", "PG7", "PG8";
allwinner,function = "mmc1";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_pins_a: spi2 at 0 {
allwinner,pins = "PB12", "PB13", "PB14";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_cs0_pins_a: spi2_cs0 at 0 {
allwinner,pins = "PB11";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
index aa4484ac50b2..f5d1a04f3a16 100644
--- a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
+++ b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
@@ -150,7 +150,6 @@
usb0_vbus_detect_pin: usb0_vbus_detect_pin at 0 {
allwinner,pins = "PG1";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
index 8aec90ac28a4..df9315e5c850 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -124,7 +124,6 @@
allwinner,pins = "PG9";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
@@ -142,13 +141,11 @@
usb0_vbus_pin_olinuxinom: usb0_vbus_pin at 0 {
allwinner,pins = "PG12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_olinuxinom: usb1_vbus_pin at 0 {
allwinner,pins = "PG11";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index 86ae19ba70d4..0f035adfbc57 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -174,7 +174,6 @@
allwinner,pins = "PG9";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
@@ -192,7 +191,6 @@
usb1_vbus_pin_olinuxino: usb1_vbus_pin at 0 {
allwinner,pins = "PG11";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index 663cfa414dc2..3b7f2097824d 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -124,7 +124,6 @@
ts_wake_pin_p66: ts_wake_pin at 0 {
allwinner,pins = "PB3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index d79db1525448..1f4c5f773226 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -355,18 +355,15 @@
"PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
"PD24", "PD25", "PD26", "PD27";
allwinner,function = "lcd0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_pins_a: uart1 at 0 {
allwinner,pins = "PE10", "PE11";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_pins_b: uart1 at 1 {
allwinner,pins = "PG3", "PG4";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index 398a17a5d2e6..8f7f01bf1f0c 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -152,13 +152,11 @@
chip_vbus_pin: chip_vbus_pin at 0 {
allwinner,pins = "PB10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
chip_id_det_pin: chip_id_det_pin at 0 {
allwinner,pins = "PG2";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index 600bd3c0e231..b29c4d1fad40 100644
--- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -114,7 +114,6 @@
codec_pa_pin: codec_pa_pin at 0 {
allwinner,pins = "PG10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin: mmc0_cd_pin at 0 {
@@ -138,7 +137,6 @@
usb0_vbus_pin_a: usb0_vbus_pin at 0 {
allwinner,pins = "PG12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index fe84703d3c14..76b696944514 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -556,19 +556,16 @@
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PB15", "PB16";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PB17", "PB18";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -576,7 +573,6 @@
"PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc2_pins_a: mmc2 at 0 {
@@ -591,19 +587,16 @@
uart3_pins_a: uart3 at 0 {
allwinner,pins = "PG9", "PG10";
allwinner,function = "uart3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart3_pins_cts_rts_a: uart3-cts-rts at 0 {
allwinner,pins = "PG11", "PG12";
allwinner,function = "uart3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm0_pins: pwm0 {
allwinner,pins = "PB2";
allwinner,function = "pwm";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
index e723dedeb614..cbc99ce6ab1a 100644
--- a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
+++ b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
@@ -70,7 +70,6 @@
usb1_vbus_pin_a: usb1_vbus_pin at 0 {
allwinner,pins = "PH27";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31-colombus.dts b/arch/arm/boot/dts/sun6i-a31-colombus.dts
index 4057e91c7cb5..24909c8c1186 100644
--- a/arch/arm/boot/dts/sun6i-a31-colombus.dts
+++ b/arch/arm/boot/dts/sun6i-a31-colombus.dts
@@ -137,7 +137,6 @@
usb2_vbus_pin_colombus: usb2_vbus_pin at 0 {
allwinner,pins = "PH24";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c_lcd_pins: i2c_lcd_pin at 0 {
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index a82c4674a3fc..7ec5f5fcdaac 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -155,7 +155,6 @@
gmac_phy_reset_pin_hummingbird: gmac_phy_reset_pin at 0 {
allwinner,pins = "PA21";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_hummingbird: mmc0_cd_pin at 0 {
@@ -167,7 +166,6 @@
wifi_reset_pin_hummingbird: wifi_reset_pin at 0 {
allwinner,pins = "PG10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31-i7.dts b/arch/arm/boot/dts/sun6i-a31-i7.dts
index a2d6a92dac29..61e3ef4528ec 100644
--- a/arch/arm/boot/dts/sun6i-a31-i7.dts
+++ b/arch/arm/boot/dts/sun6i-a31-i7.dts
@@ -111,7 +111,6 @@
led_pins_i7: led_pins at 0 {
allwinner,pins = "PH13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_i7: mmc0_cd_pin at 0 {
@@ -123,7 +122,6 @@
usb1_vbus_pin_i7: usb1_vbus_pin at 0 {
allwinner,pins = "PC27";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31-m9.dts b/arch/arm/boot/dts/sun6i-a31-m9.dts
index 0ae5ab2f06fa..96ad1fe9bbc8 100644
--- a/arch/arm/boot/dts/sun6i-a31-m9.dts
+++ b/arch/arm/boot/dts/sun6i-a31-m9.dts
@@ -130,7 +130,6 @@
led_pins_m9: led_pins at 0 {
allwinner,pins = "PH13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_m9: mmc0_cd_pin at 0 {
@@ -142,7 +141,6 @@
usb1_vbus_pin_m9: usb1_vbus_pin at 0 {
allwinner,pins = "PC27";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
index a551673aca68..a29ea186b964 100644
--- a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
+++ b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
@@ -130,7 +130,6 @@
led_pins_m9: led_pins at 0 {
allwinner,pins = "PH13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_m9: mmc0_cd_pin at 0 {
@@ -142,7 +141,6 @@
usb1_vbus_pin_m9: usb1_vbus_pin at 0 {
allwinner,pins = "PC27";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index 6fcd3cf5b3b9..f754a255ca7d 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -437,25 +437,21 @@
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PH20", "PH21";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PH14", "PH15";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PH16", "PH17";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PH18", "PH19";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -463,7 +459,6 @@
"PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc1_pins_a: mmc1 at 0 {
@@ -471,7 +466,6 @@
"PG4", "PG5";
allwinner,function = "mmc1";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc2_pins_a: mmc2 at 0 {
@@ -489,7 +483,6 @@
"PC24";
allwinner,function = "mmc2";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc3_8bit_emmc_pins: mmc3 at 1 {
@@ -499,7 +492,6 @@
"PC24";
allwinner,function = "mmc3";
allwinner,drive = <SUN4I_PINCTRL_40_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_pins_mii_a: gmac_mii at 0 {
@@ -509,7 +501,6 @@
"PA20", "PA21", "PA22", "PA23",
"PA24", "PA26", "PA27";
allwinner,function = "gmac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_pins_gmii_a: gmac_gmii at 0 {
@@ -526,7 +517,6 @@
* might need a higher signal drive strength
*/
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_pins_rgmii_a: gmac_rgmii at 0 {
@@ -540,7 +530,6 @@
* and need a higher signal drive strength
*/
allwinner,drive = <SUN4I_PINCTRL_40_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -892,13 +881,11 @@
ir_pins_a: ir at 0 {
allwinner,pins = "PL4";
allwinner,function = "s_ir";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
p2wi_pins: p2wi {
allwinner,pins = "PL0", "PL1";
allwinner,function = "s_p2wi";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
index 4332cde8d6ca..f511aa0e250d 100644
--- a/arch/arm/boot/dts/sun6i-a31s-primo81.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
@@ -136,7 +136,6 @@
gt911_int_primo81: gt911_int_pin at 0 {
allwinner,pins = "PA3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mma8452_int_primo81: mma8452_int_pin at 0 {
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
index d0304f51a5c6..2beb867d095a 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
@@ -130,7 +130,6 @@
led_pin_sina31s: led_pin at 0 {
allwinner,pins = "PH13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_sina31s: mmc0_cd_pin at 0 {
diff --git a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
index 83e47a1c93bd..3731cf22abc1 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
@@ -155,13 +155,11 @@
gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin at 0 {
allwinner,pins = "PA21";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_bpi_m2: led_pins at 0 {
allwinner,pins = "PG5", "PG10", "PG11";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_bpi_m2: mmc0_cd_pin at 0 {
@@ -175,7 +173,6 @@
mmc2_pwrseq_pin_bpi_m2: mmc2_pwrseq_pin at 0 {
allwinner,pins = "PL8";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
index e10630e59c05..2018f074ff05 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -196,13 +196,11 @@
gmac_power_pin_bpi_m1p: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_bpi_m1p: led_pins at 0 {
allwinner,pins = "PH24", "PH25";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_bpi_m1p: mmc0_cd_pin at 0 {
@@ -214,7 +212,6 @@
mmc3_pwrseq_pin_bpi_m1p: mmc3_pwrseq_pin at 0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
index 158ab889dce7..7cd6a74d104c 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -193,13 +193,11 @@
gmac_power_pin_bananapi: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_bananapi: led_pins at 0 {
allwinner,pins = "PH24";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
index 4aaf137376de..366636451e7e 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -184,13 +184,11 @@
gmac_power_pin_bananapro: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_bananapro: led_pins at 0 {
allwinner,pins = "PH24", "PG2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_bananapro: mmc0_cd_pin at 0 {
@@ -202,19 +200,16 @@
usb1_vbus_pin_bananapro: usb1_vbus_pin at 0 {
allwinner,pins = "PH0";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb2_vbus_pin_bananapro: usb2_vbus_pin at 0 {
allwinner,pins = "PH1";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
vmmc3_pin_bananapro: vmmc3_pin at 0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 42779aeb7297..e635dd6ac47d 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -162,7 +162,6 @@
led_pins_cubieboard2: led_pins at 0 {
allwinner,pins = "PH20", "PH21";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index a0b7ffb6196d..be8fa4879453 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -226,37 +226,31 @@
ahci_pwr_pin_cubietruck: ahci_pwr_pin at 1 {
allwinner,pins = "PH12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_cubietruck: led_pins at 0 {
allwinner,pins = "PH7", "PH11", "PH20", "PH21";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin at 0 {
allwinner,pins = "PH9";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_pin_a: usb0_vbus_pin at 0 {
allwinner,pins = "PH17";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
allwinner,pins = "PH19";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin at 0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
index 714a463e24ed..6719c701a45f 100644
--- a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
+++ b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
@@ -190,25 +190,21 @@
ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin at 0 {
allwinner,pins = "PH9";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin at 0 {
allwinner,pins = "PH16";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
index 4d1e102ea4b9..d64c11134dd7 100644
--- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
@@ -200,25 +200,21 @@
vmmc3_pin_i12_tvbox: vmmc3_pin at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
vmmc3_io_pin_i12_tvbox: vmmc3_io_pin at 0 {
allwinner,pins = "PH12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_power_pin_i12_tvbox: gmac_power_pin at 0 {
allwinner,pins = "PH21";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_i12_tvbox: led_pins at 0 {
allwinner,pins = "PH9", "PH20";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts b/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
index 10d48cbf81ff..44f09642c893 100644
--- a/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
@@ -134,7 +134,6 @@
allwinner,pins = "PH20","PH21";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index 57c05e69d012..79cee00a85de 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -236,13 +236,11 @@
gmac_power_pin_lamobo_r1: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_lamobo_r1: led_pins at 0 {
allwinner,pins = "PH24";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-m3.dts b/arch/arm/boot/dts/sun7i-a20-m3.dts
index cfaa5b45b159..97ce27da445f 100644
--- a/arch/arm/boot/dts/sun7i-a20-m3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-m3.dts
@@ -147,7 +147,6 @@
led_pins_m3: led_pins at 0 {
allwinner,pins = "PH20";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-mk808c.dts b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
index edd397d796be..c5890617382c 100644
--- a/arch/arm/boot/dts/sun7i-a20-mk808c.dts
+++ b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
@@ -134,13 +134,11 @@
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin at 0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
index edf735c10b63..de2863651b44 100644
--- a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
@@ -206,14 +206,12 @@
ahci_pwr_pin_olimex_som_evb: ahci_pwr_pin at 1 {
allwinner,pins = "PC3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_olimex_som_evb: led_pins at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc3_cd_pin_olimex_som_evb: mmc3_cd_pin at 0 {
@@ -225,13 +223,11 @@
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
allwinner,pins = "PH4";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_detect_pin: usb0_vbus_detect_pin at 0 {
allwinner,pins = "PH5";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
index 632ad580e09f..21946497789e 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
@@ -155,14 +155,12 @@
ahci_pwr_pin_olinuxinolime: ahci_pwr_pin at 1 {
allwinner,pins = "PC3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_olinuxinolime: led_pins at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
index a64c2b3a1125..6858d6aafea3 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
@@ -59,7 +59,6 @@
mmc2_pins_nrst: mmc2 at 0 {
allwinner,pins = "PC16";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
index b47b67765aec..3dcd745126a9 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -204,14 +204,12 @@
ahci_pwr_pin_olinuxinolime: ahci_pwr_pin at 1 {
allwinner,pins = "PC3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_olinuxinolime: led_pins at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
@@ -229,7 +227,6 @@
usb0_vbus_pin_lime2: usb0_vbus_pin at 0 {
allwinner,pins = "PC17";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 2dddbf148d8e..3773926df96e 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -236,7 +236,6 @@
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
index 69ad2345613f..8e05256f7c1b 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
@@ -186,25 +186,21 @@
usb2_vbus_pin_bananapro: usb2_vbus_pin at 0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_power_pin_orangepi: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_orangepi: led_pins at 0 {
allwinner,pins = "PH24", "PH25";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_bananapro: usb1_vbus_pin at 0 {
allwinner,pins = "PH26";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi.dts b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
index d6608ed6cdf3..d168b8f08e30 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
@@ -161,25 +161,21 @@
usb2_vbus_pin_bananapro: usb2_vbus_pin at 0 {
allwinner,pins = "PH22";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_power_pin_orangepi: gmac_power_pin at 0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_orangepi: led_pins at 0 {
allwinner,pins = "PH24";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_bananapro: usb1_vbus_pin at 0 {
allwinner,pins = "PH26";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
index 4a292a12616d..cdcbee74274e 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -154,13 +154,11 @@
ahci_pwr_pin_pcduino3_nano: ahci_pwr_pin at 0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
led_pins_pcduino3_nano: led_pins at 0 {
allwinner,pins = "PH16", "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
@@ -172,7 +170,6 @@
usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin at 0 {
allwinner,pins = "PD2";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
index a416b3a47cee..fd2b4b8af9ea 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -185,13 +185,11 @@
led_pins_pcduino3: led_pins at 0 {
allwinner,pins = "PH15", "PH16";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
key_pins_pcduino3: key_pins at 0 {
allwinner,pins = "PH17", "PH18", "PH19";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
index a10c4ccd741d..688f75ceab58 100644
--- a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
@@ -175,19 +175,16 @@
bl_enable_pin: bl_enable_pin at 0 {
allwinner,pins = "PH7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
codec_pa_pin: codec_pa_pin at 0 {
allwinner,pins = "PH15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ts_reset_pin: ts_reset_pin at 0 {
allwinner,pins = "PB13";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
index 87901259582b..b12493350ee3 100644
--- a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
@@ -162,7 +162,6 @@
vmmc3_pin_ap6xxx_wl_regon: vmmc3_pin at 0 {
allwinner,pins = "PH9";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index b6486fbfb48a..35dd9680ce3d 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -1094,13 +1094,11 @@
clk_out_a_pins_a: clk_out_a at 0 {
allwinner,pins = "PI12";
allwinner,function = "clk_out_a";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
clk_out_b_pins_a: clk_out_b at 0 {
allwinner,pins = "PI13";
allwinner,function = "clk_out_b";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
emac_pins_a: emac0 at 0 {
@@ -1110,7 +1108,6 @@
"PA11", "PA12", "PA13", "PA14",
"PA15", "PA16";
allwinner,function = "emac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_pins_mii_a: gmac_mii at 0 {
@@ -1120,7 +1117,6 @@
"PA11", "PA12", "PA13", "PA14",
"PA15", "PA16";
allwinner,function = "gmac";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
gmac_pins_rgmii_a: gmac_rgmii at 0 {
@@ -1135,55 +1131,46 @@
* and need a higher signal drive strength
*/
allwinner,drive = <SUN4I_PINCTRL_40_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PB18", "PB19";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PB20", "PB21";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c3_pins_a: i2c3 at 0 {
allwinner,pins = "PI0", "PI1";
allwinner,function = "i2c3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir0_rx_pins_a: ir0 at 0 {
allwinner,pins = "PB4";
allwinner,function = "ir0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir0_tx_pins_a: ir0 at 1 {
allwinner,pins = "PB3";
allwinner,function = "ir0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir1_rx_pins_a: ir1 at 0 {
allwinner,pins = "PB23";
allwinner,function = "ir1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ir1_tx_pins_a: ir1 at 1 {
allwinner,pins = "PB22";
allwinner,function = "ir1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -1191,7 +1178,6 @@
"PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_reference_design: mmc0_cd_pin at 0 {
@@ -1213,31 +1199,26 @@
"PI7", "PI8", "PI9";
allwinner,function = "mmc3";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ps20_pins_a: ps20 at 0 {
allwinner,pins = "PI20", "PI21";
allwinner,function = "ps2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
ps21_pins_a: ps21 at 0 {
allwinner,pins = "PH12", "PH13";
allwinner,function = "ps2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm0_pins_a: pwm0 at 0 {
allwinner,pins = "PB2";
allwinner,function = "pwm";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm1_pins_a: pwm1 at 0 {
allwinner,pins = "PI3";
allwinner,function = "pwm";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spdif_tx_pins_a: spdif at 0 {
@@ -1249,109 +1230,91 @@
spi0_pins_a: spi0 at 0 {
allwinner,pins = "PI11", "PI12", "PI13";
allwinner,function = "spi0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi0_cs0_pins_a: spi0_cs0 at 0 {
allwinner,pins = "PI10";
allwinner,function = "spi0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi0_cs1_pins_a: spi0_cs1 at 0 {
allwinner,pins = "PI14";
allwinner,function = "spi0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi1_pins_a: spi1 at 0 {
allwinner,pins = "PI17", "PI18", "PI19";
allwinner,function = "spi1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi1_cs0_pins_a: spi1_cs0 at 0 {
allwinner,pins = "PI16";
allwinner,function = "spi1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_pins_a: spi2 at 0 {
allwinner,pins = "PC20", "PC21", "PC22";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_pins_b: spi2 at 1 {
allwinner,pins = "PB15", "PB16", "PB17";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_cs0_pins_a: spi2_cs0 at 0 {
allwinner,pins = "PC19";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
spi2_cs0_pins_b: spi2_cs0 at 1 {
allwinner,pins = "PB14";
allwinner,function = "spi2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart2_pins_a: uart2 at 0 {
allwinner,pins = "PI16", "PI17", "PI18", "PI19";
allwinner,function = "uart2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart3_pins_a: uart3 at 0 {
allwinner,pins = "PG6", "PG7", "PG8", "PG9";
allwinner,function = "uart3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart3_pins_b: uart3 at 1 {
allwinner,pins = "PH0", "PH1";
allwinner,function = "uart3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart4_pins_a: uart4 at 0 {
allwinner,pins = "PG10", "PG11";
allwinner,function = "uart4";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart4_pins_b: uart4 at 1 {
allwinner,pins = "PH4", "PH5";
allwinner,function = "uart4";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart5_pins_a: uart5 at 0 {
allwinner,pins = "PI10", "PI11";
allwinner,function = "uart5";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart6_pins_a: uart6 at 0 {
allwinner,pins = "PI12", "PI13";
allwinner,function = "uart6";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart7_pins_a: uart7 at 0 {
allwinner,pins = "PI20", "PI21";
allwinner,function = "uart7";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index c250c6d12f2f..294f00a95559 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -275,7 +275,6 @@
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PF2", "PF4";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_pins_a: uart1 at 0 {
@@ -293,7 +292,6 @@
"PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc1_pins_a: mmc1 at 0 {
@@ -301,7 +299,6 @@
"PG3", "PG4", "PG5";
allwinner,function = "mmc1";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc2_8bit_pins: mmc2_8bit {
@@ -311,31 +308,26 @@
"PC15", "PC16";
allwinner,function = "mmc2";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
pwm0_pins: pwm0 {
allwinner,pins = "PH0";
allwinner,function = "pwm0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c0_pins_a: i2c0 at 0 {
allwinner,pins = "PH2", "PH3";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins_a: i2c1 at 0 {
allwinner,pins = "PH4", "PH5";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins_a: i2c2 at 0 {
allwinner,pins = "PE12", "PE13";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
lcd_rgb666_pins: lcd-rgb666 at 0 {
@@ -344,7 +336,6 @@
"PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
"PD24", "PD25", "PD26", "PD27";
allwinner,function = "lcd0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -584,7 +575,6 @@
r_uart_pins_a: r_uart at 0 {
allwinner,pins = "PL2", "PL3";
allwinner,function = "s_uart";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
index fea9db3ee9ad..89f68a78ab32 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
@@ -93,7 +93,6 @@
wifi_pwrseq_pin_mid2407: wifi_pwrseq_pin at 0 {
allwinner,pins = "PL6";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
index abcd94ea5e86..e8367deaa587 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
@@ -86,7 +86,6 @@
wifi_pwrseq_pin_mid2809: wifi_pwrseq_pin at 0 {
allwinner,pins = "PL6";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
index fb4665576dff..442db91b943a 100644
--- a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
+++ b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
@@ -92,7 +92,6 @@
allwinner,pins = "PL5";
allwinner,function = "gpio_out";
allwinner,drive = <SUN4I_PINCTRL_20_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
index 7eaf610eabd7..59a64d2d695c 100644
--- a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
+++ b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
@@ -94,19 +94,16 @@
led_pin_olinuxino: led_pins at 0 {
allwinner,pins = "PB7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_olinuxino: mmc0_cd_pin at 0 {
allwinner,pins = "PB4";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
allwinner,pins = "PB3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index e60c4c8c6976..310a38cf7f18 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -240,7 +240,6 @@
uart0_pins_b: uart0 at 1 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index c03d7f4cac83..cec6bfc2d3c9 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -171,19 +171,16 @@
"PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PF2", "PF4";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_b: uart0 at 1 {
allwinner,pins = "PB9", "PB10";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
index e02314a2d643..49194c38d56b 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -158,19 +158,16 @@
pwr_led_bpi_m2p: led_pins at 0 {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
sw_r_bpi_m2p: key_pins at 0 {
allwinner,pins = "PL3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
wifi_en_bpi_m2p: wifi_en_pin {
allwinner,pins = "PL7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
index 277935e10543..1c6e96e8ec98 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
@@ -99,7 +99,6 @@
leds_opc: led-pins {
allwinner,pins = "PA10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -107,7 +106,6 @@
leds_r_opc: led-pins {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
index e44af3446514..dfd9bc2008fd 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
@@ -147,7 +147,6 @@
leds_opc: led_pins at 0 {
allwinner,pins = "PA15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -155,19 +154,16 @@
leds_r_opc: led_pins at 0 {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
sw_r_opc: key_pins at 0 {
allwinner,pins = "PL3", "PL4";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
wifi_pwrseq_pin_orangepi: wifi_pwrseq_pin at 0 {
allwinner,pins = "PL7";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
index ce5b1086b580..77d29bae7739 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
@@ -145,7 +145,6 @@
leds_opc: led_pins at 0 {
allwinner,pins = "PA15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -153,13 +152,11 @@
leds_r_opc: led_pins at 0 {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
sw_r_opc: key_pins at 0 {
allwinner,pins = "PL3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
index fbdd239175d4..49529d9ca26d 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
@@ -112,7 +112,6 @@
leds_opc: led_pins at 0 {
allwinner,pins = "PA15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -120,13 +119,11 @@
leds_r_opc: led_pins at 0 {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
sw_r_opc: key_pins at 0 {
allwinner,pins = "PL3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
index 638720c3d04e..0d56d33d43ea 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
@@ -134,7 +134,6 @@
leds_opc: led_pins at 0 {
allwinner,pins = "PA15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -142,13 +141,11 @@
leds_r_opc: led_pins at 0 {
allwinner,pins = "PL10";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
sw_r_opc: key_pins at 0 {
allwinner,pins = "PL3";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
index 1236583caf64..ab8593d1d3df 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
@@ -85,7 +85,6 @@
usb3_vbus_pin_a: usb3_vbus_pin at 0 {
allwinner,pins = "PG11";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 4d10f8ad89da..cd02058dc8db 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -330,19 +330,16 @@
i2c0_pins: i2c0 {
allwinner,pins = "PA11", "PA12";
allwinner,function = "i2c0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c1_pins: i2c1 {
allwinner,pins = "PA18", "PA19";
allwinner,function = "i2c1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
i2c2_pins: i2c2 {
allwinner,pins = "PE12", "PE13";
allwinner,function = "i2c2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins_a: mmc0 at 0 {
@@ -350,7 +347,6 @@
"PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin: mmc0_cd_pin at 0 {
@@ -364,7 +360,6 @@
"PG4", "PG5";
allwinner,function = "mmc1";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc2_8bit_pins: mmc2_8bit {
@@ -374,37 +369,31 @@
"PC15", "PC16";
allwinner,function = "mmc2";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PA4", "PA5";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_pins: uart1 {
allwinner,pins = "PG6", "PG7";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart1_rts_cts_pins: uart1_rts_cts {
allwinner,pins = "PG8", "PG9";
allwinner,function = "uart1";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart2_pins: uart2 {
allwinner,pins = "PA0", "PA1";
allwinner,function = "uart2";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart3_pins: uart3 {
allwinner,pins = "PG13", "PG14";
allwinner,function = "uart3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -569,7 +558,6 @@
ir_pins_a: ir at 0 {
allwinner,pins = "PL11";
allwinner,function = "s_cir_rx";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
};
diff --git a/arch/arm/boot/dts/sun8i-r16-parrot.dts b/arch/arm/boot/dts/sun8i-r16-parrot.dts
index 6161ec441df5..0588fceb0636 100644
--- a/arch/arm/boot/dts/sun8i-r16-parrot.dts
+++ b/arch/arm/boot/dts/sun8i-r16-parrot.dts
@@ -167,7 +167,6 @@
led_pins_parrot: led_pins at 0 {
allwinner,pins = "PE16", "PE17";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_det: usb0_id_detect_pin at 0 {
@@ -179,7 +178,6 @@
usb1_vbus_pin_parrot: usb1_vbus_pin at 0 {
allwinner,pins = "PD12";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -187,7 +185,6 @@
wifi_reset_pin_parrot: wifi_reset_pin at 0 {
allwinner,pins = "PL6";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
index ae95e5969681..dea852b2a4f3 100644
--- a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -96,7 +96,6 @@
bl_en_pin: bl_en_pin at 0 {
allwinner,pins = "PH6";
allwinner,function = "gpio_in";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin: mmc0_cd_pin at 0 {
@@ -108,7 +107,6 @@
ts_power_pin: ts_power_pin at 0 {
allwinner,pins = "PH1";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_id_detect_pin: usb0_id_detect_pin at 0 {
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index e1be9fca86c7..e0ae76088f7e 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -112,7 +112,6 @@
led_pins_cubieboard4: led-pins at 0 {
allwinner,pins = "PH6", "PH17";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_cubieboard4: mmc0_cd_pin at 0 {
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 0b2f7042bddf..a2e540fc5725 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -162,7 +162,6 @@
led_pins_optimus: led-pins at 0 {
allwinner,pins = "PH0", "PH1";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_cd_pin_optimus: mmc0_cd_pin at 0 {
@@ -174,13 +173,11 @@
usb1_vbus_pin_optimus: usb1_vbus_pin at 1 {
allwinner,pins = "PH4";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb3_vbus_pin_optimus: usb3_vbus_pin at 1 {
allwinner,pins = "PH5";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -192,7 +189,6 @@
led_r_pins_optimus: led-pins at 1 {
allwinner,pins = "PM15";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 293b41ac8e37..d03f7481401c 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -688,7 +688,6 @@
i2c3_pins_a: i2c3 at 0 {
allwinner,pins = "PG10", "PG11";
allwinner,function = "i2c3";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc0_pins: mmc0 {
@@ -696,7 +695,6 @@
"PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
mmc2_8bit_pins: mmc2_8bit {
@@ -706,19 +704,16 @@
"PC16";
allwinner,function = "mmc2";
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0 at 0 {
allwinner,pins = "PH12", "PH13";
allwinner,function = "uart0";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart4_pins_a: uart4 at 0 {
allwinner,pins = "PG12", "PG13", "PG14", "PG15";
allwinner,function = "uart4";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
@@ -901,7 +896,6 @@
r_ir_pins: r_ir {
allwinner,pins = "PL6";
allwinner,function = "s_cir_rx";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
r_rsb_pins: r_rsb {
diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
index 7809e18d30bd..358b8d9b4703 100644
--- a/arch/arm/boot/dts/sunxi-common-regulators.dtsi
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -49,25 +49,21 @@
ahci_pwr_pin_a: ahci_pwr_pin at 0 {
allwinner,pins = "PB8";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb0_vbus_pin_a: usb0_vbus_pin at 0 {
allwinner,pins = "PB9";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb1_vbus_pin_a: usb1_vbus_pin at 0 {
allwinner,pins = "PH6";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
usb2_vbus_pin_a: usb2_vbus_pin at 0 {
allwinner,pins = "PH3";
allwinner,function = "gpio_out";
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
};
--
git-series 0.8.10
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings
2016-10-11 15:46 ` [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings Maxime Ripard
@ 2016-10-18 7:37 ` Chen-Yu Tsai
2016-10-18 12:43 ` Rob Herring
1 sibling, 0 replies; 28+ messages in thread
From: Chen-Yu Tsai @ 2016-10-18 7:37 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The generic pin configuration and multiplexing should be preferred now,
> even though we still support the old one.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 7/9] ARM: sunxi: Remove useless allwinner, drive property
[not found] ` <076406072c137a50df41c4acb0c582a688792976.1476200742.git-series.maxime.ripard@free-electrons.com>
@ 2016-10-18 7:38 ` Chen-Yu Tsai
2016-10-20 12:55 ` Linus Walleij
1 sibling, 0 replies; 28+ messages in thread
From: Chen-Yu Tsai @ 2016-10-18 7:38 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The allwinner,drive property set to 10mA was really considered as our
> default. Remove all those properties entirely to make that obvious.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner, pull property
2016-10-11 15:46 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner,pull property Maxime Ripard
@ 2016-10-18 7:39 ` Chen-Yu Tsai
2016-10-20 12:57 ` Linus Walleij
1 sibling, 0 replies; 28+ messages in thread
From: Chen-Yu Tsai @ 2016-10-18 7:39 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The allwinner,pull property set to NO_PULL was really considered our
> default (and wasn't even changing the default value in the code).
>
> Remove these properties to make it obvious that we do not set anything in
> such a case.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
[not found] ` <e32d044d2d967f24f12d83eea50e7f14f2ae1073.1476200742.git-series.maxime.ripard@free-electrons.com>
@ 2016-10-18 7:43 ` Chen-Yu Tsai
2017-01-04 2:16 ` André Przywara
2016-10-20 13:01 ` Linus Walleij
1 sibling, 1 reply; 28+ messages in thread
From: Chen-Yu Tsai @ 2016-10-18 7:43 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Now that we can handle the generic pinctrl bindings, convert our DT to it.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins
2016-10-11 15:46 ` [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins Maxime Ripard
@ 2016-10-18 7:47 ` Chen-Yu Tsai
2016-10-19 12:16 ` Maxime Ripard
0 siblings, 1 reply; 28+ messages in thread
From: Chen-Yu Tsai @ 2016-10-18 7:47 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Even though the our binding had the assumption that the allwinner,pull and
> allwinner,drive properties were optional, the code never took that into
> account.
>
> Fix that.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
> drivers/pinctrl/sunxi/pinctrl-sunxi.c | 53 ++++++++++++++++++++--------
> 1 file changed, 39 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
> index 6f6f1e0011e2..2ee8d48ed5d3 100644
> --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
> +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
> @@ -218,20 +218,29 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
> {
> unsigned long *pinconfig;
> unsigned int configlen = 0, idx = 0;
> + int ret;
>
> if (sunxi_pctrl_has_drive_prop(node))
> configlen++;
> if (sunxi_pctrl_has_bias_prop(node))
> configlen++;
>
> + /*
> + * If we don't have any configuration, bail out
> + */
> + if (!configlen)
> + return NULL;
> +
> pinconfig = kzalloc(configlen * sizeof(*pinconfig), GFP_KERNEL);
> if (!pinconfig)
> - return NULL;
> + return ERR_PTR(-ENOMEM);
>
> if (sunxi_pctrl_has_drive_prop(node)) {
> int drive = sunxi_pctrl_parse_drive_prop(node);
> - if (drive < 0)
> + if (drive < 0) {
> + ret = drive;
> goto err_free;
> + }
>
> pinconfig[idx++] = pinconf_to_config_packed(PIN_CONFIG_DRIVE_STRENGTH,
> drive);
> @@ -239,8 +248,10 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
>
> if (sunxi_pctrl_has_bias_prop(node)) {
> int pull = sunxi_pctrl_parse_bias_prop(node);
> - if (pull < 0)
> + if (pull < 0) {
> + ret = pull;
> goto err_free;
> + }
>
> pinconfig[idx++] = pinconf_to_config_packed(pull, 0);
> }
> @@ -251,7 +262,7 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
>
> err_free:
> kfree(pinconfig);
> - return NULL;
> + return ERR_PTR(ret);
> }
>
> static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
> @@ -285,7 +296,10 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
>
> /*
> * We have two maps for each pin: one for the function, one
> - * for the configuration (bias, strength, etc)
> + * for the configuration (bias, strength, etc).
> + *
> + * We might be slightly overshooting, since we might not have
> + * any configuration.
> */
> nmaps = npins * 2;
> *map = kmalloc(nmaps * sizeof(struct pinctrl_map), GFP_KERNEL);
> @@ -293,8 +307,8 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
> return -ENOMEM;
>
> pinconfig = sunxi_pctrl_build_pin_config(node, &configlen);
> - if (!pinconfig) {
> - ret = -EINVAL;
> + if (IS_ERR(pinconfig)) {
> + ret = PTR_ERR(pinconfig);
> goto err_free_map;
> }
>
> @@ -321,15 +335,24 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
>
> i++;
>
> - (*map)[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
> - (*map)[i].data.configs.group_or_pin = group;
> - (*map)[i].data.configs.configs = pinconfig;
> - (*map)[i].data.configs.num_configs = configlen;
> -
> - i++;
> + if (pinconfig) {
> + (*map)[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
> + (*map)[i].data.configs.group_or_pin = group;
> + (*map)[i].data.configs.configs = pinconfig;
> + (*map)[i].data.configs.num_configs = configlen;
> + i++;
> + }
> }
>
> - *num_maps = nmaps;
> + *num_maps = i;
> +
> + /*
> + * We know have the number of maps we need, we can resize our
> + * map array
> + */
> + *map = krealloc(*map, i * sizeof(struct pinctrl_map), GFP_KERNEL);
> + if (!map)
> + return -ENOMEM;
>
> return 0;
>
> @@ -342,6 +365,8 @@ static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
> struct pinctrl_map *map,
> unsigned num_maps)
> {
> + unsigned long *pinconfig;
This looks out of place and context?
Otherwise,
Acked-by: Chen-Yu Tsai <wens@csie.org>
> +
> /* All the maps have the same pin config, free only the first one */
> kfree(map[0].data.configs.configs);
> kfree(map);
> --
> git-series 0.8.10
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings
2016-10-11 15:46 ` [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings Maxime Ripard
2016-10-18 7:37 ` Chen-Yu Tsai
@ 2016-10-18 12:43 ` Rob Herring
1 sibling, 0 replies; 28+ messages in thread
From: Rob Herring @ 2016-10-18 12:43 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 05:46:04PM +0200, Maxime Ripard wrote:
> The generic pin configuration and multiplexing should be preferred now,
> even though we still support the old one.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
> Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+), 0 deletions(-)
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins
2016-10-18 7:47 ` Chen-Yu Tsai
@ 2016-10-19 12:16 ` Maxime Ripard
2016-10-20 12:52 ` Linus Walleij
0 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2016-10-19 12:16 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 18, 2016 at 03:47:03PM +0800, Chen-Yu Tsai wrote:
> > @@ -342,6 +365,8 @@ static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
> > struct pinctrl_map *map,
> > unsigned num_maps)
> > {
> > + unsigned long *pinconfig;
>
> This looks out of place and context?
Yeah, sorry, it's just a leftover from the previous version. This has
been removed.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161019/a478c38b/attachment.sig>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code
2016-10-11 15:45 ` [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code Maxime Ripard
@ 2016-10-20 12:47 ` Linus Walleij
0 siblings, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:47 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:45 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> In order to support more easily the generic pinctrl properties, rework the
> pinctrl maps configuration and split it into several sub-functions.
>
> One of the side-effects from that rework is that we only parse the pin
> configuration once, since it's going to be common to every pin, instead of
> having to parsing once for each pin.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing
2016-10-11 15:46 ` [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing Maxime Ripard
@ 2016-10-20 12:50 ` Linus Walleij
0 siblings, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:50 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Since we have some bindings header for our hardcoded flags, let's use them
> when we can.
>
> Acked-by: Chen-Yu Tsai <wens@csie.org>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable
2016-10-11 15:46 ` [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard
@ 2016-10-20 12:51 ` Linus Walleij
0 siblings, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:51 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> 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>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins
2016-10-19 12:16 ` Maxime Ripard
@ 2016-10-20 12:52 ` Linus Walleij
2016-10-20 13:46 ` Maxime Ripard
0 siblings, 1 reply; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:52 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Oct 19, 2016 at 2:16 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Tue, Oct 18, 2016 at 03:47:03PM +0800, Chen-Yu Tsai wrote:
>> > @@ -342,6 +365,8 @@ static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
>> > struct pinctrl_map *map,
>> > unsigned num_maps)
>> > {
>> > + unsigned long *pinconfig;
>>
>> This looks out of place and context?
>
> Yeah, sorry, it's just a leftover from the previous version. This has
> been removed.
Do you mean you will send a v3 of this series?
OK stopping to apply then.
But I have already applied patches 1, 2 and 3 so just resend the rest :)
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 7/9] ARM: sunxi: Remove useless allwinner, drive property
[not found] ` <076406072c137a50df41c4acb0c582a688792976.1476200742.git-series.maxime.ripard@free-electrons.com>
2016-10-18 7:38 ` [PATCH v2 7/9] ARM: sunxi: Remove useless allwinner, drive property Chen-Yu Tsai
@ 2016-10-20 12:55 ` Linus Walleij
1 sibling, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:55 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The allwinner,drive property set to 10mA was really considered as our
> default. Remove all those properties entirely to make that obvious.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Please merge this through the ARM SoC tree.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner, pull property
2016-10-11 15:46 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner,pull property Maxime Ripard
2016-10-18 7:39 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner, pull property Chen-Yu Tsai
@ 2016-10-20 12:57 ` Linus Walleij
1 sibling, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 12:57 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The allwinner,pull property set to NO_PULL was really considered our
> default (and wasn't even changing the default value in the code).
>
> Remove these properties to make it obvious that we do not set anything in
> such a case.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Please merge this through the ARM SoC tree.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
[not found] ` <e32d044d2d967f24f12d83eea50e7f14f2ae1073.1476200742.git-series.maxime.ripard@free-electrons.com>
2016-10-18 7:43 ` [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings Chen-Yu Tsai
@ 2016-10-20 13:01 ` Linus Walleij
1 sibling, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2016-10-20 13:01 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 11, 2016 at 5:46 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Now that we can handle the generic pinctrl bindings, convert our DT to it.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Awesome work.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Please merge this through the ARM SoC tree.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins
2016-10-20 12:52 ` Linus Walleij
@ 2016-10-20 13:46 ` Maxime Ripard
0 siblings, 0 replies; 28+ messages in thread
From: Maxime Ripard @ 2016-10-20 13:46 UTC (permalink / raw)
To: linux-arm-kernel
Hi Linus,
On Thu, Oct 20, 2016 at 02:52:54PM +0200, Linus Walleij wrote:
> On Wed, Oct 19, 2016 at 2:16 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > On Tue, Oct 18, 2016 at 03:47:03PM +0800, Chen-Yu Tsai wrote:
> >> > @@ -342,6 +365,8 @@ static void sunxi_pctrl_dt_free_map(struct pinctrl_dev *pctldev,
> >> > struct pinctrl_map *map,
> >> > unsigned num_maps)
> >> > {
> >> > + unsigned long *pinconfig;
> >>
> >> This looks out of place and context?
> >
> > Yeah, sorry, it's just a leftover from the previous version. This has
> > been removed.
>
> Do you mean you will send a v3 of this series?
Yes, I was waiting for your input to do that, but I guess you're ok
with it :)
> OK stopping to apply then.
>
> But I have already applied patches 1, 2 and 3 so just resend the rest :)
Ack, I'll send it in a moment.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161020/2e925f92/attachment.sig>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
2016-10-18 7:43 ` [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings Chen-Yu Tsai
@ 2017-01-04 2:16 ` André Przywara
2017-01-05 15:35 ` Maxime Ripard
0 siblings, 1 reply; 28+ messages in thread
From: André Przywara @ 2017-01-04 2:16 UTC (permalink / raw)
To: linux-arm-kernel
On 18/10/16 08:43, Chen-Yu Tsai wrote:
Hi Maxime, Chen-Yu,
I just stumbled over this patch in Maxime's -next tree and think I
missed it before. I guess it's a bit late, but I just wanted to express
my concerns and write out the issues with the current DT approach:
> On Tue, Oct 11, 2016 at 11:46 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
>> Now that we can handle the generic pinctrl bindings, convert our DT to it.
Do we really want to do this? This makes the new DTs incompatible to
older kernels, for no good reasons. Or are there any? Does this "lock
muxed pins" functionality (users cannot export GPIOs which are used by a
driver) rely on the new binding?
Anyway ...
I understand that in sunxi world a kernel is always accompanied by a
matching .dtb, but we should really get away from this, as this doesn't
scale and more importantly creates big headaches in arm64 world:
1) Scaling: Providing a board .dtb together with a kernel puts the
burden of board support to each distribution, which means that _every_
distribution needs to ship matching DTs for _every_ board. There are a
lot of Allwinner boards (around 100 these days?), I am not sure every
distribution seriously wants to put every .dtb into some bootloader
accessible directory. Also this kind of defeats the original DT idea,
where the .dtb is provided by firmware and a generic kernel just works
with whatever it gets presented.
Either distributions will not support certain boards because of this or
there is a lot of maintenance churn in distros.
Yes, arm(32) has lived with this for years, but that doesn't mean we
need to keep it this way.
2) Firmware DT: We start to see more and more Allwinner boards with SPI
flash now, which is supposed to hold some firmware bits. This gives the
ultimate opportunity to store the DT in there as well. BUT this relies
on there being _one_ DT (to rule them all). I don't see issues with
older DTs not having full functionality on newer kernels (this would be
a reason for a firmware update), but there should at any given time _one
best_ DT which is a candidate for being burned into the flash.
Otherwise people are stuck with a certain kernel version (range).
As an example in this case: Kernel 4.9 is LTS and will probably be
elected by Debian to be _the_ kernel for the next release and supported
over several years. But it relies on an old style DT (allwinner,pins
properties), newer pinctrl DT nodes will be rejected by the driver.
But for new features (upcoming HDMI support for H3, for instance) to be
usable a newer DT is required, even if an old kernel will ignore those
features. So if the flash provides a new DT, we cannot boot stable
Debian, whereas if the flash provides a legacy DT, we cannot use new
features in newer kernels.
Not changing the DT in a way that breaks forward compatibility can be
done, for instance we just drop this patch here. For new SoCs (like A64
or H5, where there are no backward compatibility issues) we can happily
use the new bindings in the official DTs, but for anything already
supported by older kernels we just stick which what we have. We have to
keep the old support code in anyway.
Yes, providing both forward and backward compatibility is not going to
be a walk in the park, but is inevitable if we want to get those board
out of the toy area. Other platform can cope with this.
3) On EFI setups the generation(!) of the DT is actually done in EFI
firmware (very much like in the original PowerPC OF setup). It is
expected that the generation relies on a static DT scaffold, but
firmware is free to add or remove nodes. Providing different DTs for
each kernel is hard to integrate into this approach.
4) Generic boot images: On the x86 side everybody expects this just to
work: You put in a generic USB stick with one (or two) generic kernels
and it just boots, without this installation having to know each
supported machine beforehand. It even works with machines newer than the
distro. While the last is hard work, it can be done, but only if the DT
is provided by firmware, which requires there to be one best DT for each
board.
5) arm64: Distributions providing support for arm64 machines generally
do not seem to provide DTs, because most platform do not require them
to. It is not clear that every distribution will do so for the sake or
supporting Allwinner boards.
6) Other OSes (or U-Boot) are affected by this as well. Eventually this
will lead them to create their own DTs (and their own bindings?), which
makes this situation really a mess. We can hardly request them to stick
with the Linux bindings if we break them regularly.
7) Dynamic DT alteration (by firmware/U-Boot and using overlays, for
instance), will be much easier if the DT is originally stored in the
firmware and snippets are stored there as well. This is for instance a
use case for the (optional) WiFi module on the Pine64.
8) Those patches also create a lot of potential merge conflicts, since
they touch almost every sunxi DT file. They are trivial to solve,
probably, but still tend to create a lot of work and cause nuisance for
other people (as proven with the A64 CCU driver in this cycle).
So can I ask that we start taking this seriously and stop doing things
which prevent Allwinner boards from being supported properly?
Which would first involve dropping this very patch?
Having done breakage in the past (with "allwinner,sun7i-a20-mmc", for
instance) is no excuse for doing it again. And especially I want to
avoid this habit creeping into the arm64 world (thinking about the H5
here, which may be impacted by this very patch, for instance).
Cheers,
Andre.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
2017-01-04 2:16 ` André Przywara
@ 2017-01-05 15:35 ` Maxime Ripard
2017-01-06 1:17 ` André Przywara
0 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2017-01-05 15:35 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Jan 04, 2017 at 02:16:23AM +0000, Andr? Przywara wrote:
> So can I ask that we start taking this seriously and stop doing things
> which prevent Allwinner boards from being supported properly?
> Which would first involve dropping this very patch?
The driver still supports the old binding.
> Having done breakage in the past (with "allwinner,sun7i-a20-mmc", for
> instance) is no excuse for doing it again.
I'm not sure which breakage we introduced with a new compatible: the
old compatible is working just like it used to, and the new one is
working like we need it to.
> And especially I want to avoid this habit creeping into the arm64
> world (thinking about the H5 here, which may be impacted by this
> very patch, for instance).
And again, if you looked at the entire serie, you would have seen that
I took this into account.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170105/63b51c9d/attachment.sig>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
2017-01-05 15:35 ` Maxime Ripard
@ 2017-01-06 1:17 ` André Przywara
2017-01-09 11:16 ` Maxime Ripard
0 siblings, 1 reply; 28+ messages in thread
From: André Przywara @ 2017-01-06 1:17 UTC (permalink / raw)
To: linux-arm-kernel
On 05/01/17 15:35, Maxime Ripard wrote:
Hi Maxime,
> On Wed, Jan 04, 2017 at 02:16:23AM +0000, Andr? Przywara wrote:
>> So can I ask that we start taking this seriously and stop doing things
>> which prevent Allwinner boards from being supported properly?
>> Which would first involve dropping this very patch?
>
> The driver still supports the old binding.
Yes, a _current_ version of the driver supports both bindings, but older
versions *require* the older binding and bail out if various
allwinner,xxx properties are missing - as in those proposed new DTs:
4.9 kernel with sunxi/for-next .dtb:
sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
node uart0
sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
node mmc0
sunxi-mmc: probe of 1c0f000.mmc failed with error -22
>> Having done breakage in the past (with "allwinner,sun7i-a20-mmc", for
>> instance) is no excuse for doing it again.
>
> I'm not sure which breakage we introduced with a new compatible: the
> old compatible is working just like it used to, and the new one is
> working like we need it to.
But the new compatible is not recognized with older kernels, preventing
people from using the newest DT with older kernels as well.
I proposed to simply work around this by using the old compatible as a
fallback: compatible="sun7i-a20-mmc", "sun5i-a13-mmc";
Unfortunately this suggestion was not followed.
So now we can't boot a 4.8 (or earlier) kernel with a .dtb from a 4.9 or
later tree. Adding the extra string would fix this.
Actually the recommended approach to avoid this situation in the first
place is to always use compatible strings with the SoC-specific name as
the first string, followed by the compatible string the driver works
with. And this should be done upon introducing a new DT to the tree -
even if at this point the driver doesn't deal with the new string.
Unknown strings will just be skipped.
So for instance the H5 DT should read: "sun50i-h5-mmc",
"sun50i-a64-mmc", "sun5i-a13-mmc"; (with the last string possibly being
optional). The current kernel driver will not match the h5 string, so it
falls back to the a64 string and works. If we learn about a neat eMMC
5.1 feature (or any quirk the H5 can benefit from) somewhere in the
future, we can add the code together with this h5 string to the driver
and don't need to change the DT at all.
>> And especially I want to avoid this habit creeping into the arm64
>> world (thinking about the H5 here, which may be impacted by this
>> very patch, for instance).
>
> And again, if you looked at the entire serie, you would have seen that
> I took this into account.
I saw that and I appreciate that very much, but that post was not about
keeping compatibility with older DTs, but allowing older kernels to run
with the latest DT as well.
Newer DTs from your -next branch do not work with older kernels - that
is what my whole post was about. _Why_ we should care is explained there.
And please don't get me wrong: I am not asking for rewriting and bending
the whole kernel source to make this possible, it's just that we drop
this patch here, for instance, or simply not _change_ compatible names,
but instead add new strings.
Cheers,
Andre.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
2017-01-06 1:17 ` André Przywara
@ 2017-01-09 11:16 ` Maxime Ripard
2017-01-11 14:41 ` Linus Walleij
0 siblings, 1 reply; 28+ messages in thread
From: Maxime Ripard @ 2017-01-09 11:16 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jan 06, 2017 at 01:17:21AM +0000, Andr? Przywara wrote:
> > On Wed, Jan 04, 2017 at 02:16:23AM +0000, Andr? Przywara wrote:
> >> So can I ask that we start taking this seriously and stop doing things
> >> which prevent Allwinner boards from being supported properly?
> >> Which would first involve dropping this very patch?
> >
> > The driver still supports the old binding.
>
> Yes, a _current_ version of the driver supports both bindings, but older
> versions *require* the older binding and bail out if various
> allwinner,xxx properties are missing - as in those proposed new DTs:
>
> 4.9 kernel with sunxi/for-next .dtb:
> sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
> node uart0
> sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
> node mmc0
> sunxi-mmc: probe of 1c0f000.mmc failed with error -22
This is seriously getting out of control. We already come to great
length (and sometimes a painful amount of hacks) to satisfy a few
individuals with a theorical interest in backward compatibility (and
apparently, we're even the only one doing so, even more platforms
choosing to not support that as we speak), there's seriously no reason
to support forward compatibility as well. This has *never* been a
thing, never has been documented nor advertised, I don't know why it
should be one more thing to carry on our shoulders.
Only maybe to slow us even more in the process, and effectively
prevent us from doing any actual work.
> >> Having done breakage in the past (with "allwinner,sun7i-a20-mmc", for
> >> instance) is no excuse for doing it again.
> >
> > I'm not sure which breakage we introduced with a new compatible: the
> > old compatible is working just like it used to, and the new one is
> > working like we need it to.
>
> But the new compatible is not recognized with older kernels, preventing
> people from using the newest DT with older kernels as well.
When do you draw the line exactly? You could have the same argument
for any feature that will be supported in the future... Do you also
want to backport any given driver for any kernel version?
This is ridiculous. 4.9 didn't have MMC support. Who cares about
whether MMC (or any other driver) works? This was never supposed to!
> I proposed to simply work around this by using the old compatible as a
> fallback: compatible="sun7i-a20-mmc", "sun5i-a13-mmc";
> Unfortunately this suggestion was not followed.
> So now we can't boot a 4.8 (or earlier) kernel with a .dtb from a 4.9 or
> later tree. Adding the extra string would fix this.
>
> Actually the recommended approach to avoid this situation in the first
> place is to always use compatible strings with the SoC-specific name as
> the first string, followed by the compatible string the driver works
> with. And this should be done upon introducing a new DT to the tree -
> even if at this point the driver doesn't deal with the new string.
> Unknown strings will just be skipped.
> So for instance the H5 DT should read: "sun50i-h5-mmc",
> "sun50i-a64-mmc", "sun5i-a13-mmc"; (with the last string possibly being
> optional). The current kernel driver will not match the h5 string, so it
> falls back to the a64 string and works. If we learn about a neat eMMC
> 5.1 feature (or any quirk the H5 can benefit from) somewhere in the
> future, we can add the code together with this h5 string to the driver
> and don't need to change the DT at all.
And what about the situation that you encountered last week too? IE
the compatibility was introduced because it was convenient, and it
turns out it's not working as expected?
We remove the bogus compatible from the list? But then, we can't boot
anymore on older kernels...
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170109/ec0e4075/attachment.sig>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings
2017-01-09 11:16 ` Maxime Ripard
@ 2017-01-11 14:41 ` Linus Walleij
0 siblings, 0 replies; 28+ messages in thread
From: Linus Walleij @ 2017-01-11 14:41 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Jan 9, 2017 at 12:16 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Fri, Jan 06, 2017 at 01:17:21AM +0000, Andr? Przywara wrote:
>> > On Wed, Jan 04, 2017 at 02:16:23AM +0000, Andr? Przywara wrote:
>> >> So can I ask that we start taking this seriously and stop doing things
>> >> which prevent Allwinner boards from being supported properly?
>> >> Which would first involve dropping this very patch?
>> >
>> > The driver still supports the old binding.
>>
>> Yes, a _current_ version of the driver supports both bindings, but older
>> versions *require* the older binding and bail out if various
>> allwinner,xxx properties are missing - as in those proposed new DTs:
>>
>> 4.9 kernel with sunxi/for-next .dtb:
>> sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
>> node uart0
>> sun8i-h3-pinctrl 1c20800.pinctrl: missing allwinner,function property in
>> node mmc0
>> sunxi-mmc: probe of 1c0f000.mmc failed with error -22
>
> This is seriously getting out of control. We already come to great
> length (and sometimes a painful amount of hacks) to satisfy a few
> individuals with a theorical interest in backward compatibility (and
> apparently, we're even the only one doing so, even more platforms
> choosing to not support that as we speak), there's seriously no reason
> to support forward compatibility as well. This has *never* been a
> thing, never has been documented nor advertised, I don't know why it
> should be one more thing to carry on our shoulders.
I agree.
We have too much standardization burden to maintain already as it is.
And AFAICT the Allwinner support is a hacker/community/enthusiast
effort without vendor backing.
We should be aware that the strong push toward DT standardization
was due to mess in the vendor trees, and as for the ambition to ship
DTBs with products, that is for people producing products to do,
not for the community. Community support can very well use attached
DTB files on the kernel from my point of view, I don't see why
ArchLinuxARM and others should have to standardize and support
DTB file in flash images, very ambitious if they do but definately
not their problem.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2017-01-11 14:41 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-11 15:45 [PATCH v2 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard
2016-10-11 15:45 ` [PATCH v2 1/9] pinctrl: sunxi: Rework the pin config building code Maxime Ripard
2016-10-20 12:47 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 2/9] pinctrl: sunxi: Use macros from bindings header file for DT parsing Maxime Ripard
2016-10-20 12:50 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard
2016-10-20 12:51 ` Linus Walleij
2016-10-11 15:46 ` [PATCH v2 4/9] pinctrl: sunxi: Deal with configless pins Maxime Ripard
2016-10-18 7:47 ` Chen-Yu Tsai
2016-10-19 12:16 ` Maxime Ripard
2016-10-20 12:52 ` Linus Walleij
2016-10-20 13:46 ` Maxime Ripard
2016-10-11 15:46 ` [PATCH v2 5/9] pinctrl: sunxi: Support generic binding Maxime Ripard
2016-10-11 15:46 ` [PATCH v2 6/9] dt-bindings: pinctrl: Deprecate sunxi pinctrl bindings Maxime Ripard
2016-10-18 7:37 ` Chen-Yu Tsai
2016-10-18 12:43 ` Rob Herring
2016-10-11 15:46 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner,pull property Maxime Ripard
2016-10-18 7:39 ` [PATCH v2 8/9] ARM: sunxi: Remove useless allwinner, pull property Chen-Yu Tsai
2016-10-20 12:57 ` Linus Walleij
[not found] ` <076406072c137a50df41c4acb0c582a688792976.1476200742.git-series.maxime.ripard@free-electrons.com>
2016-10-18 7:38 ` [PATCH v2 7/9] ARM: sunxi: Remove useless allwinner, drive property Chen-Yu Tsai
2016-10-20 12:55 ` Linus Walleij
[not found] ` <e32d044d2d967f24f12d83eea50e7f14f2ae1073.1476200742.git-series.maxime.ripard@free-electrons.com>
2016-10-18 7:43 ` [PATCH v2 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings Chen-Yu Tsai
2017-01-04 2:16 ` André Przywara
2017-01-05 15:35 ` Maxime Ripard
2017-01-06 1:17 ` André Przywara
2017-01-09 11:16 ` Maxime Ripard
2017-01-11 14:41 ` Linus Walleij
2016-10-20 13:01 ` Linus Walleij
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox