From: Stephen Boyd <sboyd@codeaurora.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>,
Grant Likely <grant.likely@secretlab.ca>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
linux-arm-msm@vger.kernel.org,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Timur Tabi <timur@codeaurora.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
linux-gpio@vger.kernel.org,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>
Subject: Re: [PATCH 2/3] dt-bindings: pinctrl: Add a ngpios-ranges property
Date: Wed, 10 Jan 2018 08:37:33 -0800 [thread overview]
Message-ID: <20180110163733.GH21040@codeaurora.org> (raw)
In-Reply-To: <CACRpkdaN6vmV4L4U76DvD5BN+j1RYCQakTysA+GGPdT8Chc-iw@mail.gmail.com>
On 01/10, Linus Walleij wrote:
> On Wed, Jan 10, 2018 at 2:58 AM, Stephen Boyd <sboyd@codeaurora.org> wrote:
>
> > +- ngpios-ranges:
> > + Usage: optional
> > + Value type: <prop-encoded-array>
> > + Definition: Tuples of GPIO ranges (base, size) indicating
> > + GPIOs available for use.
> > +
> > Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
> > a general description of GPIO and interrupt bindings.
>
> I like the tuples syntax. That's fine. It's like gpio-ranges we have
> already to map between pin controllers and GPIO.
>
> I don't think we can reuse gpio-ranges because that is
> exclusively for pin control ATM, it would be fine if the ranges
> were for a specific device, like pin control does, like:
>
> gpio-ranges = <&secure_world_thing 0 20 10>;
>
> But you definately would need a node to tie it to, so that the
> driver for that node can specify that it's gonna take the
> GPIOs.
>
> But I think the semantics should be the inverse. That you
> point out "holes" with the lines we *can't* use.
Ok. I can invert the logic and push it into the core part of the
code. I'll leave the ACPI part in the msm driver.
>
> We already support a generic property "ngpios" that says how
> many of the GPIOs (counted from zero) that can be used,
> so if those should be able to use this as a generic property it
> is better with the inverse semantics and say that the
> "reserved-gpio-ranges", "secureworld-gpio-ranges"
> (or whatever we decide to call it) takes precedence over
> ngpios so we don't end up in ambigous places.
>
> Then, will it be possible to put the parsing, handling and
> disablement of these ranges into drivers/gpio/gpiolib-of.c
> where we handle the ranges today, or do we need to
> do it in the individual drivers?
>
I'll cook that up right now to do the inverse thing in the
gpiolib core code with a 'reserved-gpio-ranges' property. I
haven't looked in much detail, but I would hope that it would
work pretty easily. Should it be decoupled from the
GPIOLIB_IRQCHIP config? If the idea is generic, then it may not
be related to irq lines, but for the qcom driver it was all fine
because all three concepts: irq, gpios, and pins have a one to
one relationship. The only place it breaks down is if we have
more pins than gpios, in which case I punted and just considered
non-gpio pins as always valid.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/3] dt-bindings: pinctrl: Add a ngpios-ranges property
Date: Wed, 10 Jan 2018 08:37:33 -0800 [thread overview]
Message-ID: <20180110163733.GH21040@codeaurora.org> (raw)
In-Reply-To: <CACRpkdaN6vmV4L4U76DvD5BN+j1RYCQakTysA+GGPdT8Chc-iw@mail.gmail.com>
On 01/10, Linus Walleij wrote:
> On Wed, Jan 10, 2018 at 2:58 AM, Stephen Boyd <sboyd@codeaurora.org> wrote:
>
> > +- ngpios-ranges:
> > + Usage: optional
> > + Value type: <prop-encoded-array>
> > + Definition: Tuples of GPIO ranges (base, size) indicating
> > + GPIOs available for use.
> > +
> > Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
> > a general description of GPIO and interrupt bindings.
>
> I like the tuples syntax. That's fine. It's like gpio-ranges we have
> already to map between pin controllers and GPIO.
>
> I don't think we can reuse gpio-ranges because that is
> exclusively for pin control ATM, it would be fine if the ranges
> were for a specific device, like pin control does, like:
>
> gpio-ranges = <&secure_world_thing 0 20 10>;
>
> But you definately would need a node to tie it to, so that the
> driver for that node can specify that it's gonna take the
> GPIOs.
>
> But I think the semantics should be the inverse. That you
> point out "holes" with the lines we *can't* use.
Ok. I can invert the logic and push it into the core part of the
code. I'll leave the ACPI part in the msm driver.
>
> We already support a generic property "ngpios" that says how
> many of the GPIOs (counted from zero) that can be used,
> so if those should be able to use this as a generic property it
> is better with the inverse semantics and say that the
> "reserved-gpio-ranges", "secureworld-gpio-ranges"
> (or whatever we decide to call it) takes precedence over
> ngpios so we don't end up in ambigous places.
>
> Then, will it be possible to put the parsing, handling and
> disablement of these ranges into drivers/gpio/gpiolib-of.c
> where we handle the ranges today, or do we need to
> do it in the individual drivers?
>
I'll cook that up right now to do the inverse thing in the
gpiolib core code with a 'reserved-gpio-ranges' property. I
haven't looked in much detail, but I would hope that it would
work pretty easily. Should it be decoupled from the
GPIOLIB_IRQCHIP config? If the idea is generic, then it may not
be related to irq lines, but for the qcom driver it was all fine
because all three concepts: irq, gpios, and pins have a one to
one relationship. The only place it breaks down is if we have
more pins than gpios, in which case I punted and just considered
non-gpio pins as always valid.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2018-01-10 16:37 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-10 1:58 [PATCH 0/3] Support qcom pinctrl protected pins Stephen Boyd
2018-01-10 1:58 ` Stephen Boyd
[not found] ` <20180110015848.11480-1-sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-01-10 1:58 ` [PATCH 1/3] gpiolib: Export gpiochip_irqchip_irq_valid() to drivers Stephen Boyd
2018-01-10 1:58 ` Stephen Boyd
2018-01-10 1:58 ` Stephen Boyd
2018-01-10 6:16 ` Bjorn Andersson
2018-01-10 6:16 ` Bjorn Andersson
2018-01-10 13:22 ` Linus Walleij
2018-01-10 13:22 ` Linus Walleij
2018-01-10 1:58 ` [PATCH 2/3] dt-bindings: pinctrl: Add a ngpios-ranges property Stephen Boyd
2018-01-10 1:58 ` Stephen Boyd
2018-01-10 12:54 ` Andy Shevchenko
2018-01-10 12:54 ` Andy Shevchenko
[not found] ` <20180110015848.11480-3-sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-01-10 13:37 ` Linus Walleij
2018-01-10 13:37 ` Linus Walleij
2018-01-10 13:37 ` Linus Walleij
2018-01-10 16:37 ` Stephen Boyd [this message]
2018-01-10 16:37 ` Stephen Boyd
2018-01-10 17:59 ` Andy Shevchenko
2018-01-10 17:59 ` Andy Shevchenko
2018-01-11 16:33 ` Grant Likely
2018-01-11 16:33 ` Grant Likely
2018-01-11 16:36 ` Timur Tabi
2018-01-11 16:36 ` Timur Tabi
2018-01-11 19:56 ` Grant Likely
2018-01-11 19:56 ` Grant Likely
2018-01-10 1:58 ` [PATCH 3/3] pinctrl: qcom: Don't allow protected pins to be requested Stephen Boyd
2018-01-10 1:58 ` Stephen Boyd
2018-01-10 6:11 ` Bjorn Andersson
2018-01-10 6:11 ` Bjorn Andersson
2018-01-22 13:55 ` Timur Tabi
2018-01-22 13:55 ` Timur Tabi
2018-01-22 20:03 ` Timur Tabi
2018-01-22 20:03 ` Timur Tabi
2018-01-22 20:03 ` Timur Tabi
2018-01-25 21:51 ` Stephen Boyd
2018-01-25 21:51 ` Stephen Boyd
2018-01-25 21:53 ` Timur Tabi
2018-01-25 21:53 ` Timur Tabi
2018-01-25 20:48 ` Timur Tabi
2018-01-25 20:48 ` Timur Tabi
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=20180110163733.GH21040@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@secretlab.ca \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=timur@codeaurora.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.