linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: jmondi <jacopo@jmondi.org>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Chris Brandt <Chris.Brandt@renesas.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 01/10] pinctrl: generic: Add bi-directional and output-enable
Date: Tue, 9 May 2017 12:54:54 +0200	[thread overview]
Message-ID: <CAMuHMdXK9VmghZy1RounHWn-HDqgeT_12V_9RVihiuiajn+RDg@mail.gmail.com> (raw)
In-Reply-To: <CACRpkdY1h+yfFuk2y9=nZqqvW9=G33_eHCisvuMkJ5b3zizY7Q@mail.gmail.com>

Hi Linus et al,

On Mon, May 8, 2017 at 11:19 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> On Mon, May 8, 2017 at 7:25 PM, jmondi <jacopo@jmondi.org> wrote:
>> From my perspective these flags are configurations internal to the pin
>> controller hardware used to enable/disable input buffers when a pin needs to
>> perform in both direction.
>> The level of detail I can provide on this is the logical diagram we have pointed
>> you to already.
>>
>> As I assume you are trying to get this answer from us in order to
>> avoid duplicating things in pin controller sub-system, and I
>> understand this, but my question here was "can we have those flags as part
>> of the pinmux property argument list, as that property description
>> seems to allow us to do that, instead of making them generic pin
>> configuration properties and upset other developers?"
>
> Pinmux with all it's magic flags baked into one is not any better
> or any more readable. The solution is already very pretty except
> for these two flags which I am sure we can agree on a way forward
> for.
>
> What we choose between is not this or another less transparent
> pin configuration mechanism, the mechanism (whether magic bits
> to pinmux or reasonable properties) does not matter.
>
> There is a strong preference to use the generic bindings.
>
> So the discussion is whether to use:
>
> bi-directional;
> output-enable;
>
> Or some already defined config flags.
>
> If these are too idiomatic to be used by others, they should anyways
> look similar, like:
>
> renesas,bi-directional;
> renesas,output-enable;
>
> Like the Qualcomm weirdness found in drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
>
> qcom,pull-up-strength = <..>;
>
> Check how they use
> #define PMIC_GPIO_CONF_PULL_UP                 (PIN_CONFIG_END + 1)

The question I'm asking myself is: are these settings related to pin
configuration (i.e. depending on the use of the pin, and several settings
are valid, depending on the use case), or are they related to pinmux
(i.e. defined by the function)?

Configuring drive strength or pull-up are clearly related to pin
configuration.  Depending on what you connect, or on how you connect it,
you want a different drive strength, or choose a different output buffer
type (e.g. totem pole vs. open-collector). All of these are valid
configurations, depending on the use case.

But the settings RZ/A1H needs are different.  Some (e.g. "input-enable")
may sound like related to pin configuration. However, the big discerning
factor is that these settings are implied by the pinmux function. Their
presence is purely dictated by the chosen pinmux function. There's no use
case for doing otherwise (i.e. adding them when not needed, or removing
them when needed, according to the datasheet).

Note that e.g. the existing "input-enable" property is clearly a pin
configuration property. This is even reflected in DT, as the property is
not specified as part of the "pinmux" property, but in the surrounding pin
subnode of the pin-controller.

Hence I think we should not use generic pin properties, but consider these
settings to be part of pinmux configuration.
As having large tables in the driver is undesirable, I think storing the
settings in the "pinmux" property (by encoding them as flags passed to the
RZA1_PINMUX() macro) is our best option.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2017-05-09 10:54 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-27  8:19 [PATCH v5 00/10] Renesas RZ/A1 pin and gpio controller Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 01/10] pinctrl: generic: Add bi-directional and output-enable Jacopo Mondi
2017-04-27 14:56   ` Andy Shevchenko
2017-04-28  8:32     ` Linus Walleij
2017-04-28 10:09       ` Geert Uytterhoeven
2017-05-07  7:50         ` Linus Walleij
2017-04-28 12:07       ` Chris Brandt
2017-04-28 12:15         ` Andy Shevchenko
2017-04-28 13:18           ` Chris Brandt
2017-04-28 14:53             ` Andy Shevchenko
2017-04-28 15:16               ` Chris Brandt
2017-04-28 15:37                 ` Andy Shevchenko
2017-04-28 16:46                   ` Chris Brandt
2017-05-07  7:52               ` Linus Walleij
2017-05-08 16:01                 ` jmondi
2017-05-08 16:08                   ` Andy Shevchenko
2017-05-08 17:02                     ` Chris Brandt
2017-05-08 18:26                       ` Andy Shevchenko
2017-05-08 20:05                         ` Chris Brandt
2017-05-08 17:25                     ` jmondi
2017-05-08 17:47                       ` Andy Shevchenko
2017-05-09  9:55                         ` jmondi
2017-05-08 21:19                       ` Linus Walleij
2017-05-09 10:54                         ` Geert Uytterhoeven [this message]
2017-05-12  9:00                           ` Linus Walleij
2017-05-12  9:04                           ` Linus Walleij
2017-05-12 11:11                             ` Geert Uytterhoeven
2017-05-12 12:13                               ` Chris Brandt
2017-05-12 12:25                                 ` Geert Uytterhoeven
2017-05-12 12:57                                   ` Chris Brandt
2017-05-12 11:44                             ` Chris Brandt
2017-05-23 10:08                         ` Dong Aisheng
2017-05-23 18:37                           ` jmondi
2017-05-29  8:45                             ` Linus Walleij
2017-05-29 10:42                               ` jmondi
2017-05-30 14:12                                 ` Chris Brandt
2017-06-09  7:26                                 ` Dong Aisheng
2017-06-09  7:50                                   ` jmondi
2017-06-11 21:45                                     ` Linus Walleij
2017-06-12  9:44                                       ` jmondi
2017-06-13  6:25                                         ` Dong Aisheng
2017-06-15 11:11                                           ` jmondi
2017-06-19 15:43                                             ` Dong Aisheng
2017-04-27  8:19 ` [PATCH v5 02/10] pinctrl: generic: Add macros to unpack properties Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-28  8:16   ` Linus Walleij
2017-04-28 10:06     ` Geert Uytterhoeven
2017-04-28 12:49     ` jmondi
2017-04-28 16:23     ` Andy Shevchenko
2017-04-27  8:19 ` [PATCH v5 03/10] pinctrl: Renesas RZ/A1 pin and gpio controller Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-27  8:19 ` [PATCH v5 04/10] dt-bindings: pinctrl: Add RZ/A1 bindings doc Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-28 21:03   ` Rob Herring
2017-04-27  8:19 ` [PATCH v5 05/10] arm: dts: dt-bindings: Add Renesas RZ/A1 pinctrl header Jacopo Mondi
2017-04-27  8:38   ` Geert Uytterhoeven
2017-04-28  5:19     ` Simon Horman
2017-04-27  8:19 ` [PATCH v5 06/10] arm: dts: r7s72100: Add pin controller node Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 07/10] arm: dts: genmai: Add SCIF2 pin group Jacopo Mondi
2017-04-28  5:21   ` Simon Horman
2017-04-27  8:19 ` [PATCH v5 08/10] arm: dts: genmai: Add RIIC2 " Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 09/10] arm: dts: genmai: Add user led device nodes Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 10/10] arm: dts: genmai: Add ethernet pin group Jacopo Mondi
2017-04-27  9:56   ` Geert Uytterhoeven
2017-04-27 10:48     ` Chris Brandt
2017-04-28  5:22       ` Simon Horman
2017-04-28  7:18       ` Geert Uytterhoeven
2017-04-28 14:48         ` Chris Brandt
2017-05-05 12:06           ` Linus Walleij
2017-05-05 12:20             ` Geert Uytterhoeven
2017-05-05 12:45             ` Chris Brandt
2017-05-11 13:48               ` Linus Walleij
2017-04-28  8:49   ` Linus Walleij
2017-04-28 13:50     ` Chris Brandt
2017-04-27  8:42 ` [PATCH v5 00/10] Renesas RZ/A1 pin and gpio controller Geert Uytterhoeven
2017-04-28  5:22   ` Simon Horman
2017-04-28  7:24   ` jmondi
2017-04-28  7:30     ` Geert Uytterhoeven
2017-04-28  7:31     ` Simon Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMuHMdXK9VmghZy1RounHWn-HDqgeT_12V_9RVihiuiajn+RDg@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=Chris.Brandt@renesas.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=jacopo+renesas@jmondi.org \
    --cc=jacopo@jmondi.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).