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


Groups > linux.kernel > #1494814 > unrolled thread

[PATCH 0/9] pinctrl: sunxi: Generic bindings rework

Started byMaxime Ripard <maxime.ripard@free-electrons.com>
First post2016-10-03 12:30 +0200
Last post2016-10-04 04:40 +0200
Articles 7 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [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

#1494814 — [PATCH 0/9] pinctrl: sunxi: Generic bindings rework

FromMaxime Ripard <maxime.ripard@free-electrons.com>
Date2016-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]


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

FromMaxime Ripard <maxime.ripard@free-electrons.com>
Date2016-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]


#1495143 — Re: [PATCH 3/9] pinctrl: sunxi: Handle bias disable

FromChen-Yu Tsai <wens@csie.org>
Date2016-10-04 04:20 +0200
SubjectRe: [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]


#1495148 — Re: [PATCH 8/9] ARM: sunxi: Remove useless allwinner,pull property

FromChen-Yu Tsai <wens@csie.org>
Date2016-10-04 04:40 +0200
SubjectRe: [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]


#1495153 — Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property

FromChen-Yu Tsai <wens@csie.org>
Date2016-10-04 04:40 +0200
SubjectRe: [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]


#1497149 — Re: [PATCH 7/9] ARM: sunxi: Remove useless allwinner,drive property

FromMaxime Ripard <maxime.ripard@free-electrons.com>
Date2016-10-07 15:10 +0200
SubjectRe: [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]


#1495160 — Re: [PATCH 9/9] ARM: sunxi: Convert pinctrl nodes to generic bindings

FromChen-Yu Tsai <wens@csie.org>
Date2016-10-04 04:40 +0200
SubjectRe: [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