Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1494814 > unrolled thread
| Started by | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| First post | 2016-10-03 12:30 +0200 |
| Last post | 2016-10-04 04:40 +0200 |
| Articles | 7 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/9] pinctrl: sunxi: Generic bindings rework Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-03 12:30 +0200
[PATCH 3/9] pinctrl: sunxi: Handle bias disable Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-03 12:30 +0200
Re: [PATCH 3/9] pinctrl: sunxi: Handle bias disable Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:20 +0200
Re: [PATCH 8/9] ARM: sunxi: Remove useless allwinner,pull property Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200
Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200
Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-07 15:10 +0200
Re: [PATCH 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings Chen-Yu Tsai <wens@csie.org> - 2016-10-04 04:40 +0200
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2016-10-03 12:30 +0200 |
| Subject | [PATCH 0/9] pinctrl: sunxi: Generic bindings rework |
| Message-ID | <so8Fs-3GE-7@gated-at.bofh.it> |
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. Maxime Ripard (9): pinctrl: sunxi: Rework the pin config building code pinctrl: sunxi: Add bindings define 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 | 5 +- 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 | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 100 files changed, 1290 insertions(+), 1793 deletions(-) -- git-series 0.8.10
[toc] | [next] | [standalone]
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2016-10-03 12:30 +0200 |
| Subject | [PATCH 3/9] pinctrl: sunxi: Handle bias disable |
| Message-ID | <so8Fs-3GE-31@gated-at.bofh.it> |
| In reply to | #1494814 |
So far, putting NO_PULL in allwinner,pull was ignored, behaving like if
that property was not there at all.
Obviously, this is not the right thing to do, and in that case, we really
need to just disable the bias.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 8 ++++++++
1 file changed, 8 insertions(+), 0 deletions(-)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 5be455d5e252..6f6f1e0011e2 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -166,6 +166,8 @@ static int sunxi_pctrl_parse_bias_prop(struct device_node *node)
return -EINVAL;
switch (val) {
+ case SUN4I_PINCTRL_NO_PULL:
+ return PIN_CONFIG_BIAS_DISABLE;
case SUN4I_PINCTRL_PULL_UP:
return PIN_CONFIG_BIAS_PULL_UP;
case SUN4I_PINCTRL_PULL_DOWN:
@@ -402,6 +404,12 @@ static int sunxi_pconf_group_set(struct pinctrl_dev *pctldev,
| dlevel << sunxi_dlevel_offset(pin),
pctl->membase + sunxi_dlevel_reg(pin));
break;
+ case PIN_CONFIG_BIAS_DISABLE:
+ val = readl(pctl->membase + sunxi_pull_reg(pin));
+ mask = PULL_PINS_MASK << sunxi_pull_offset(pin);
+ writel((val & ~mask),
+ pctl->membase + sunxi_pull_reg(pin));
+ break;
case PIN_CONFIG_BIAS_PULL_UP:
val = readl(pctl->membase + sunxi_pull_reg(pin));
mask = PULL_PINS_MASK << sunxi_pull_offset(pin);
--
git-series 0.8.10
[toc] | [prev] | [next] | [standalone]
| From | Chen-Yu Tsai <wens@csie.org> |
|---|---|
| Date | 2016-10-04 04:20 +0200 |
| Subject | Re: [PATCH 3/9] pinctrl: sunxi: Handle bias disable |
| Message-ID | <sonuN-4Gn-11@gated-at.bofh.it> |
| In reply to | #1494815 |
On Mon, Oct 3, 2016 at 6:21 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.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
I've done the same in my patches.
Acked-by: Chen-Yu Tsai <wens@csie.org>
> ---
> 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
[toc] | [prev] | [next] | [standalone]
| From | Chen-Yu Tsai <wens@csie.org> |
|---|---|
| Date | 2016-10-04 04:40 +0200 |
| Subject | Re: [PATCH 8/9] ARM: sunxi: Remove useless allwinner,pull property |
| Message-ID | <sonO9-4Mz-9@gated-at.bofh.it> |
| In reply to | #1494814 |
On Mon, Oct 3, 2016 at 6:21 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> Same comment as the last patch. ChenYu
[toc] | [prev] | [next] | [standalone]
| From | Chen-Yu Tsai <wens@csie.org> |
|---|---|
| Date | 2016-10-04 04:40 +0200 |
| Subject | Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property |
| Message-ID | <sonOa-4Mz-17@gated-at.bofh.it> |
| In reply to | #1494814 |
On Mon, Oct 3, 2016 at 6:21 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> Did you use sed or some other scripting tool to do this patch? Including the command should make it easier to verify the result, instead of having to go through the 93 files here. ChenYu
[toc] | [prev] | [next] | [standalone]
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2016-10-07 15:10 +0200 |
| Subject | Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property |
| Message-ID | <spD4u-QQ-63@gated-at.bofh.it> |
| In reply to | #1495153 |
[Multipart message — attachments visible in raw view] — view raw
On Tue, Oct 04, 2016 at 10:34:39AM +0800, Chen-Yu Tsai wrote: > On Mon, Oct 3, 2016 at 6:21 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> > > Did you use sed or some other scripting tool to do this patch? > Including the command should make it easier to verify the result, > instead of having to go through the 93 files here. Yeah, I used some dumb sed commands. Unfortunately, it disappeared from my history, but given my sed-fu, it was pretty trivial, just a succession of sed -i 'd/SUN4I_PINCTRL_10_MA' *.dtsi Something along those lines, and pretty much the same thing for the next patches. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
[toc] | [prev] | [next] | [standalone]
| From | Chen-Yu Tsai <wens@csie.org> |
|---|---|
| Date | 2016-10-04 04:40 +0200 |
| Subject | Re: [PATCH 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings |
| Message-ID | <sonOa-4Mz-23@gated-at.bofh.it> |
| In reply to | #1494814 |
On Mon, Oct 3, 2016 at 6:21 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> Same comment as the last 2 patches. ChenYu
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web