All of lore.kernel.org
 help / color / mirror / Atom feed
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: Fri, 28 Sep 2012 11:52:22 +0200	[thread overview]
Message-ID: <50657356.4010801@antcom.de> (raw)
In-Reply-To: <CACRpkdZ+1ffsMDRZXYb5RRndoXstj_QHvHOpeikRY0bas72dKQ@mail.gmail.com>

On 09/28/2012 11:14 AM, Linus Walleij wrote:
>> @@ -686,6 +731,13 @@ read-only attributes:
>>
>>         "ngpio" ... how many GPIOs this manges (N to N + ngpio - 1)
>>
>> +       "block" ... get/set Block GPIO:
>> +                   * reads: space separated list of GPIO inputs of this chip that
>> +                     are set to 1, e.g. "83 85 87 99"
>> +                   * write: space separated list of GPIO outputs of this chip
>> +                     that are to be set or cleared, e.g. "80 -83 -85" (prefix
>> +                     "-" clears)
> 
> This sort of breaks the sysfs convention of one value per file,
> does it not?
> 
> It's not like I have some better idea, just we need to think about
> other possible solutions.
> 
> The GPIO sysfs interface is not universally liked. What are the
> typical applications you have for this? Industrial control by
> bit-banging userspace processes?

Yes, I had several projects in the past with the need of setting groups
of GPIOs at once (typically, 8 bit busses via GPIO lines), so needed to
provide some hacks. Don't want to do this over and over again. :-)

Bit-banging in kernel and userspace.

It's hard to do the one-value-per-file right for a several-gpios-at-once
goal. :-) I originally had a one-value solution: A bit map, continuously
hex coded, like in the original kernel API idea (e.g. 0x000F0A0010).
Wasn't sure because it encodes GPIO numbers in a weird way.

Strictly formally: Isn't a comma-separated list of a GPIO block (e.g.
"80,81,85") a singe value in a sense? :-) Or other possibilities? Maybe
some node in /proc? Or some kind of new character device node?

Otherwise, I need to think about leaving out the sysfs for this purpose.

Thanks in advance,

Roland

WARNING: multiple messages have this Message-ID (diff)
From: Roland Stigge <stigge@antcom.de>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Grant Likely <grant.likely@secretlab.ca>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, w.sang@pengutronix.de,
	jbe@pengutronix.de, Bill Gatliff <bgat@billgatliff.com>,
	Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Subject: Re: [PATCH RFC 1/2] gpio: Add a block GPIO API to gpiolib
Date: Fri, 28 Sep 2012 11:52:22 +0200	[thread overview]
Message-ID: <50657356.4010801@antcom.de> (raw)
In-Reply-To: <CACRpkdZ+1ffsMDRZXYb5RRndoXstj_QHvHOpeikRY0bas72dKQ@mail.gmail.com>

On 09/28/2012 11:14 AM, Linus Walleij wrote:
>> @@ -686,6 +731,13 @@ read-only attributes:
>>
>>         "ngpio" ... how many GPIOs this manges (N to N + ngpio - 1)
>>
>> +       "block" ... get/set Block GPIO:
>> +                   * reads: space separated list of GPIO inputs of this chip that
>> +                     are set to 1, e.g. "83 85 87 99"
>> +                   * write: space separated list of GPIO outputs of this chip
>> +                     that are to be set or cleared, e.g. "80 -83 -85" (prefix
>> +                     "-" clears)
> 
> This sort of breaks the sysfs convention of one value per file,
> does it not?
> 
> It's not like I have some better idea, just we need to think about
> other possible solutions.
> 
> The GPIO sysfs interface is not universally liked. What are the
> typical applications you have for this? Industrial control by
> bit-banging userspace processes?

Yes, I had several projects in the past with the need of setting groups
of GPIOs at once (typically, 8 bit busses via GPIO lines), so needed to
provide some hacks. Don't want to do this over and over again. :-)

Bit-banging in kernel and userspace.

It's hard to do the one-value-per-file right for a several-gpios-at-once
goal. :-) I originally had a one-value solution: A bit map, continuously
hex coded, like in the original kernel API idea (e.g. 0x000F0A0010).
Wasn't sure because it encodes GPIO numbers in a weird way.

Strictly formally: Isn't a comma-separated list of a GPIO block (e.g.
"80,81,85") a singe value in a sense? :-) Or other possibilities? Maybe
some node in /proc? Or some kind of new character device node?

Otherwise, I need to think about leaving out the sysfs for this purpose.

Thanks in advance,

Roland

  reply	other threads:[~2012-09-28  9:52 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 [this message]
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
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=50657356.4010801@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.