From: Dirk Behme <dirk.behme@gmail.com>
To: Alexandre Courbot <gnurou@gmail.com>
Cc: "linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
Alexandre Courbot <acourbot@nvidia.com>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH 2/2] Documentation: gpio: board: describe the con_id parameter
Date: Sun, 30 Aug 2015 11:14:27 +0200 [thread overview]
Message-ID: <55E2C973.5060804@gmail.com> (raw)
In-Reply-To: <CAAVeFuLpzXCURTHO+EvgA1NB5f1fEy666dmPWGiY9B3o7Vj8_A@mail.gmail.com>
On 21.08.2015 05:01, Alexandre Courbot wrote:
> On Fri, Aug 21, 2015 at 2:28 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
>> On 25.07.2015 09:11, Dirk Behme wrote:
>>>
>>> The con_id parameter has to match the GPIO description and is
>>> automatically
>>> extended by the GPIO suffix if not NULL. I had to look into the code to
>>> understand this and properly find the GPIO I've been looking for, so
>>> document
>>> this.
>>>
>>> Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
>>> ---
>>> Documentation/gpio/board.txt | 36
>>> ++++++++++++++++++++++++++++++++++++
>>> Documentation/gpio/consumer.txt | 3 +++
>>> 2 files changed, 39 insertions(+)
>>>
>>> diff --git a/Documentation/gpio/board.txt b/Documentation/gpio/board.txt
>>> index 7605773..eac78fc 100644
>>> --- a/Documentation/gpio/board.txt
>>> +++ b/Documentation/gpio/board.txt
>>> @@ -48,6 +48,42 @@ This property will make GPIOs 15, 16 and 17 available
>>> to the driver under the
>>> The led GPIOs will be active-high, while the power GPIO will be
>>> active-low (i.e.
>>> gpiod_is_active_low(power) will be true).
>>>
>>> +If in the consumer device's node the property doesn't have a <function>-
>>> prefix,
>>> +the second parameter (con_id) of the gpiod_get*() functions has to be
>>> NULL:
>>> +
>>> +E.g. if in the above device tree example the GPIO array is just called
>>> 'gpios'
>>> +
>>> + foo_device {
>>> + compatible = "acme,foo";
>>> + ...
>>> + gpios = <&gpio 15 GPIO_ACTIVE_HIGH>, /* red */
>>> + <&gpio 16 GPIO_ACTIVE_HIGH>, /* green */
>>> + <&gpio 17 GPIO_ACTIVE_HIGH>; /* blue */
>>> + };
>>> +
>>> +the gpiod_get*() calls will be:
>>> +
>>> + struct gpio_desc *red, *green, *blue, *power;
>>> +
>>> + red = gpiod_get_index(dev, NULL, 0, GPIOD_OUT_HIGH);
>>> + green = gpiod_get_index(dev, NULL, 1, GPIOD_OUT_HIGH);
>>> + blue = gpiod_get_index(dev, NULL, 2, GPIOD_OUT_HIGH);
>>> +
>>> +To summarize:
>>> +
>>> +The con_id string parameter has to be either NULL or the
>>> <function>-prefix
>>> +of the GPIO suffixes ("gpios" or "gpio", automatically looked up by the
>>> +gpiod functions internally):
>>> +
>>> +* If the GPIO description is just named with one of the GPIO suffixes
>>> + ("gpios" or "gpio"), use NULL.
>>> +* If the GPIO description is prefixed with anything, e.g. "led-gpios",
>>> use the
>>> + prefix without the "-" as con_id parameter (in this example "led").
>>> +
>>> +In case con_id is not NULL, the GPIO subsystem prefixes the GPIO suffix
>>> +("gpios" or "gpio") with the string passed in con_id to get the resulting
>>> string
>>> +(snprintf(... "%s-%s", con_id, gpio_suffixes[]).
>>> +
>>> ACPI
>>> ----
>>> ACPI also supports function names for GPIOs in a similar fashion to DT.
>>> diff --git a/Documentation/gpio/consumer.txt
>>> b/Documentation/gpio/consumer.txt
>>> index 75542b9..47ce4fd 100644
>>> --- a/Documentation/gpio/consumer.txt
>>> +++ b/Documentation/gpio/consumer.txt
>>> @@ -39,6 +39,9 @@ device that displays digits), an additional index
>>> argument can be specified:
>>> const char *con_id, unsigned int
>>> idx,
>>> enum gpiod_flags flags)
>>>
>>> +For a more detailed description of the con_id parameter in the DeviceTree
>>> case
>>> +see Documentation/gpio/board.txt
>>> +
>>> The flags parameter is used to optionally specify a direction and
>>> initial value
>>> for the GPIO. Values can be:
>>
>>
>>
>> Any further comments on this? Or could this be applied?
>
> Using the "gpios" property is considered deprecated, so I am not sure
> that is a good idea to mention this too extensively in the boards file
> (people might be tempted to use that option while we clearly don't
> want them to).
>
> A precise description of the lookup method is clearly missing though.
> I don't know what the right place would be for it. consumer.txt?
> board.txt in a more concise (and with a big "DEPRECATED") way?
Ok, thanks!
In a previous comment there was the proposal to put it into board.txt,
as this applies only to the device tree case and board.txt has a
device tree section.
I'll drop the description of the deprecated part and send an update.
Best regards
Dirk
next prev parent reply other threads:[~2015-08-30 9:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-25 7:11 [PATCH 1/2] Documentation: gpio: board: add flags parameter to gpiod_get*() functions Dirk Behme
2015-07-25 7:11 ` [PATCH 2/2] Documentation: gpio: board: describe the con_id parameter Dirk Behme
2015-08-20 17:28 ` Dirk Behme
2015-08-21 3:01 ` Alexandre Courbot
2015-08-30 9:14 ` Dirk Behme [this message]
2015-08-24 16:47 ` [PATCH 1/2] Documentation: gpio: board: add flags parameter to gpiod_get*() functions Dirk Behme
2015-08-31 5:24 ` Alexandre Courbot
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=55E2C973.5060804@gmail.com \
--to=dirk.behme@gmail.com \
--cc=acourbot@nvidia.com \
--cc=gnurou@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.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 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.