linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Prathamesh Shete <pshete@nvidia.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org" 
	<krzysztof.kozlowski+dt@linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	Suresh Mangipudi <smangipudi@nvidia.com>
Subject: Re: [PATCH 1/3] dt-bindings: pinctrl: tegra234: Add DT binding doc
Date: Thu, 23 Mar 2023 15:11:56 +0100	[thread overview]
Message-ID: <ZBxeLIXJDbM2ebyt@orome> (raw)
In-Reply-To: <3b9d4177-ebd9-e341-294d-41860fa8c5ac@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 4077 bytes --]

On Wed, Mar 08, 2023 at 01:24:04PM +0100, Krzysztof Kozlowski wrote:
> On 08/03/2023 12:45, Prathamesh Shete wrote:
> > 
> > 
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> >> Sent: Wednesday, February 8, 2023 5:28 PM
> >> To: Thierry Reding <thierry.reding@gmail.com>
> >> Cc: Prathamesh Shete <pshete@nvidia.com>; Jonathan Hunter
> >> <jonathanh@nvidia.com>; linus.walleij@linaro.org; robh+dt@kernel.org;
> >> krzysztof.kozlowski+dt@linaro.org; devicetree@vger.kernel.org; linux-
> >> tegra@vger.kernel.org; linux-gpio@vger.kernel.org; Suresh Mangipudi
> >> <smangipudi@nvidia.com>
> >> Subject: Re: [PATCH 1/3] dt-bindings: pinctrl: tegra234: Add DT binding doc
> >>
> >> External email: Use caution opening links or attachments
> >>
> >>
> >> On 08/02/2023 12:24, Thierry Reding wrote:
> >>> On Tue, Feb 07, 2023 at 04:33:08PM +0100, Krzysztof Kozlowski wrote:
> >>
> >>
> >>>>> +          type: object
> >>>>> +          additionalProperties:
> >>>>> +            properties:
> >>>>> +              nvidia,pins:
> >>>>> +                description: An array of strings. Each string contains the name
> >>>>> +                  of a pin or group. Valid values for these names are listed
> >>>>> +                  below.
> >>>>
> >>>> Define properties in top level, which points to the complexity of
> >>>> your if-else, thus probably this should be split into two bindings.
> >>>> Dunno, your other bindings repeat this pattern :(
> >>>
> >>> The property itself is already defined in the common schema found in
> >>> nvidia,tegra-pinmux-common.yaml and we're overriding this here for
> >>> each instance since each has its own set of pins.
> >>>
> >>> This was a compromise to avoid too many bindings. Originally I
> >>> attempted to roll all Tegra pinctrl bindings into a single dt-schema,
> >>> but that turned out truly horrible =) Splitting this into per-SoC
> >>> bindings is already causing a lot of duplication in these files,
> >>
> >> What would be duplicated? Almost eveerything should be coming from
> >> shared binding, so you will have only compatible,
> >> patternProperties(pinmux) and nvidia,pins. And an example. Maybe I miss
> >> something but I would say this would create many but very easy to read
> >> bindings, referencing common pieces.
> >>
> >>> though splitting
> >>> off the common bits into nvidi,tegra-pinmux-common.yaml helps a bit
> >>> with that already. Splitting this into per-instance bindings would
> >>> effectively duplicate everything but the pin array here, so we kind of
> >>> settled on this compromise for Tegra194.
> >>
> >> OK, but are you sure it is now readable? You have if:then: with
> >> patternProperties: with additionalProperties: with properties: with
> >> nvidia,pins.
> > This is inline with the existing bindings and I think this is the compromise that was reached during review when the bindings were submitted,
> 
> So the code might be totally unreadable, but it is inline with existing
> code, thus it should stay unreadable. Great.

I'd say this is very subjective. I personally don't find the current
version hard to read, but that's maybe because I wrote it... =)

> > offer to rework if a better alternative can be found, but that only makes sense if all the other bindings get changed as well, so I think it'd be good if we can merge in the same format as the existing bindings for now and change all of them later on.
> 
> Cleanup should happen before adding new bindings.

I don't recall the exact problems that I ran into last time, but I do
remember that pulling out the common bindings to the very top-level was
the main issue.

If I understand correctly what you're saying, the main problem that
makes this hard to read is the if and else constructs for AON/MAIN
variants on Tegra194/Tegra234. These should be quite easy to pull out
into separate bindings. I'll do that first and then see if there's
anything that could be done to further improve things.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-03-23 14:12 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-07 11:56 [PATCH 1/3] dt-bindings: pinctrl: tegra234: Add DT binding doc Prathamesh Shete
2023-02-07 11:56 ` [PATCH 2/3] pinctrl: tegra: Add Tegra234 pinmux driver Prathamesh Shete
2023-02-07 11:56 ` [PATCH 3/3] arm64: tegra: Add Tegra234 pinmux device Prathamesh Shete
2023-02-07 15:33   ` Krzysztof Kozlowski
2023-02-08 11:00     ` Thierry Reding
2023-02-08 12:01       ` Krzysztof Kozlowski
2023-02-08 12:06         ` Krzysztof Kozlowski
2023-02-08 15:46           ` Thierry Reding
2023-02-07 14:37 ` [PATCH 1/3] dt-bindings: pinctrl: tegra234: Add DT binding doc Rob Herring
2023-02-08 11:29   ` Thierry Reding
2023-02-07 15:33 ` Krzysztof Kozlowski
2023-02-08 11:24   ` Thierry Reding
2023-02-08 11:57     ` Krzysztof Kozlowski
2023-03-08 11:45       ` Prathamesh Shete
2023-03-08 12:24         ` Krzysztof Kozlowski
2023-03-23 14:11           ` Thierry Reding [this message]
2023-03-26 12:19             ` Krzysztof Kozlowski
2023-03-28 12:39               ` Thierry Reding
2023-03-30 13:58                 ` Krzysztof Kozlowski
2023-03-30 16:32                   ` Thierry Reding
2023-04-20 17:06                     ` Thierry Reding
2023-04-20 17:16                       ` Krzysztof Kozlowski

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=ZBxeLIXJDbM2ebyt@orome \
    --to=thierry.reding@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jonathanh@nvidia.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=pshete@nvidia.com \
    --cc=robh+dt@kernel.org \
    --cc=smangipudi@nvidia.com \
    /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).