From: stigge@antcom.de (Roland Stigge)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFC 1/2] gpio: Add a block GPIO API to gpiolib
Date: Sun, 30 Sep 2012 17:46:29 +0200 [thread overview]
Message-ID: <50686955.8040503@antcom.de> (raw)
In-Reply-To: <CAOY=C6F1rHoGM0T9FqLYuVwzaidDZBzEf_uWn9mP8fmT1oURTQ@mail.gmail.com>
On 30/09/12 17:19, Stijn Devriendt wrote:
>> If I understand correctly, it's a violation (single-value should hold
>> for read and write).
>>
>> To solve it, I have the following in mind: /sys/.../gpiogroupXXX/
>> contains files "bit0" ... "bit31" which contain a gpio number each,
>> empty if "unconnected".
>
> Unfortunately that means you can't atomically create a group.
I don't see a big advantage of having atomic create/request. Most
important is set/get, isn't it? I assume the following usage pattern:
* Create(request) - non atomic (maybe atomic but why not add GPIOs later?)
* Set - atomic
* Get - atomic
* ...
> It also creates a mess to keep ordering intact and to either
> keep the current pin state or override it at allocation-time.
Ordering should stay intact, and later add/delete operations could be
possible. I meant bit0 ... bit31 in the gpio block as such:
bit0 - "80"
bit1 - "" (i.e. unconnected)
bit2 - "85"
bit3 - "2"
...
bit31 - ""
This scheme can support multiple gpio_chips, as discussed with Linus and
JC, which of course can't always guarantee real simultaneous I/O but
provide virtual I/O word access (32bit/64bit).
> Rules are rules, but why make the interface overly complex when
> the multi-value file is saner, cleaner and simpler?
Simply because they won't (and probably shouldn't) accept it mainline.
Roland
WARNING: multiple messages have this Message-ID (diff)
From: Roland Stigge <stigge@antcom.de>
To: Stijn Devriendt <highguy@gmail.com>
Cc: grant.likely@secretlab.ca, linus.walleij@linaro.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, w.sang@pengutronix.de,
jbe@pengutronix.de,
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
bgat@billgatliff.com
Subject: Re: [PATCH RFC 1/2] gpio: Add a block GPIO API to gpiolib
Date: Sun, 30 Sep 2012 17:46:29 +0200 [thread overview]
Message-ID: <50686955.8040503@antcom.de> (raw)
In-Reply-To: <CAOY=C6F1rHoGM0T9FqLYuVwzaidDZBzEf_uWn9mP8fmT1oURTQ@mail.gmail.com>
On 30/09/12 17:19, Stijn Devriendt wrote:
>> If I understand correctly, it's a violation (single-value should hold
>> for read and write).
>>
>> To solve it, I have the following in mind: /sys/.../gpiogroupXXX/
>> contains files "bit0" ... "bit31" which contain a gpio number each,
>> empty if "unconnected".
>
> Unfortunately that means you can't atomically create a group.
I don't see a big advantage of having atomic create/request. Most
important is set/get, isn't it? I assume the following usage pattern:
* Create(request) - non atomic (maybe atomic but why not add GPIOs later?)
* Set - atomic
* Get - atomic
* ...
> It also creates a mess to keep ordering intact and to either
> keep the current pin state or override it at allocation-time.
Ordering should stay intact, and later add/delete operations could be
possible. I meant bit0 ... bit31 in the gpio block as such:
bit0 - "80"
bit1 - "" (i.e. unconnected)
bit2 - "85"
bit3 - "2"
...
bit31 - ""
This scheme can support multiple gpio_chips, as discussed with Linus and
JC, which of course can't always guarantee real simultaneous I/O but
provide virtual I/O word access (32bit/64bit).
> Rules are rules, but why make the interface overly complex when
> the multi-value file is saner, cleaner and simpler?
Simply because they won't (and probably shouldn't) accept it mainline.
Roland
next prev parent reply other threads:[~2012-09-30 15:46 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-27 21:22 [PATCH RFC 1/2] gpio: Add a block GPIO API to gpiolib Roland Stigge
2012-09-27 21:22 ` Roland Stigge
2012-09-27 21:22 ` [PATCH RFC 2/2] gpio-max730x: Add block GPIO API Roland Stigge
2012-09-27 21:22 ` Roland Stigge
2012-09-28 2:47 ` [PATCH RFC 1/2] gpio: Add a block GPIO API to gpiolib Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 2:47 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 7:14 ` Roland Stigge
2012-09-28 7:14 ` Roland Stigge
2012-09-28 7:51 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 7:51 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 8:51 ` Roland Stigge
2012-09-28 8:51 ` Roland Stigge
2012-09-28 9:08 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 9:08 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 9:23 ` Roland Stigge
2012-09-28 9:23 ` Roland Stigge
2012-09-28 10:28 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 10:28 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 11:32 ` Roland Stigge
2012-09-28 11:32 ` Roland Stigge
2012-09-28 16:01 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 16:01 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 18:32 ` Roland Stigge
2012-09-28 18:32 ` Roland Stigge
2012-09-29 19:57 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-29 19:57 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-30 10:34 ` Roland Stigge
2012-09-30 10:34 ` Roland Stigge
2012-09-30 15:11 ` Stijn Devriendt
2012-09-30 15:11 ` Stijn Devriendt
2012-09-28 9:14 ` Linus Walleij
2012-09-28 9:14 ` Linus Walleij
2012-09-28 9:52 ` Roland Stigge
2012-09-28 9:52 ` Roland Stigge
2012-09-28 11:34 ` Linus Walleij
2012-09-28 11:34 ` Linus Walleij
2012-09-28 12:35 ` Roland Stigge
2012-09-28 12:35 ` Roland Stigge
2012-09-30 9:35 ` Stijn Devriendt
2012-09-30 9:39 ` Stijn Devriendt
2012-09-30 10:50 ` Roland Stigge
2012-09-30 10:50 ` Roland Stigge
2012-09-30 14:52 ` Stijn Devriendt
2012-09-30 14:52 ` Stijn Devriendt
2012-09-30 15:09 ` Roland Stigge
2012-09-30 15:09 ` Roland Stigge
2012-09-30 15:19 ` Stijn Devriendt
2012-09-30 15:19 ` Stijn Devriendt
2012-09-30 15:46 ` Roland Stigge [this message]
2012-09-30 15:46 ` Roland Stigge
2012-10-03 23:11 ` Linus Walleij
2012-10-03 23:11 ` Linus Walleij
2012-10-03 23:07 ` Linus Walleij
2012-10-03 23:07 ` Linus Walleij
2012-10-04 20:25 ` Roland Stigge
2012-10-04 20:25 ` Roland Stigge
2012-10-03 19:08 ` Mark Brown
2012-10-03 19:08 ` Mark Brown
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=50686955.8040503@antcom.de \
--to=stigge@antcom.de \
--cc=linux-arm-kernel@lists.infradead.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.