All of lore.kernel.org
 help / color / mirror / Atom feed
From: wg@grandegger.com (Wolfgang Grandegger)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/6 v8] gpio: Add block GPIO
Date: Mon, 03 Dec 2012 10:17:05 +0100	[thread overview]
Message-ID: <50BC6E11.3040203@grandegger.com> (raw)
In-Reply-To: <1354298637-25058-1-git-send-email-stigge@antcom.de>

Hi Roland,

On 11/30/2012 07:03 PM, Roland Stigge wrote:
> This set of patches adds:
> 
> * Block GPIO API to gpiolib
> * Sysfs support for GPIO API, to provide userland access
> * Device interface for userland access (alternative to sysfs)
> * Devicetree support to instantiate GPIO blocks via DT
> * Example implementations in several gpio drivers since they need
>   special accessor functions for block wise GPIO access
> * Fix for race condition in gpiolib on device creation
> 
> Signed-off-by: Roland Stigge <stigge@antcom.de>
> --
> 
> Changes since v7:
> * Fixed error in API documentation (name arg missing in prototype)
> * Fixed compile error if sysfs is missing: Moved gpio_block_is_output()
>   out of sysfs-ifdef
> * Added error handling to gpio_block_register()
> * Added mask attribute to sysfs (although dev interface exists now)
> 
> Changes since v6:
> * Changed realloc to list handling
> * Added mask to kernel API
> * Added device interface as userspace API
> * Changed sizeof() to BITS_PER_LONG
> * Fixed multiline comment style
> * Documented direction setting by the user
> * Documented order of handled chips in case of multiple chips in one block
> 
> Changes since v5:
> * Documented sysfs: elaborated on "exported" and "values" attributes
> * Documented sysfs: gpiochip is a separate class now
> * Aggregated driver support patches for block gpio into one single patch
> * Added gpio block driver support for twl6040 and pch
> 
> Changes since v4:
> * Documented word width
> * Bugfix: export/unexport on register/unregister
> * Using default dev_attrs for gpio_block_class
> * Fix gpiolib: race condition on device creation
> * Added driver support for ucb14500, vt8500, xilinx
> 
> Changes since v3:
> * Added driver support for pca953x, em, pl061, max732x, pcf857x
> * Coding style improvements
> * Fixed krealloc memory leak in error case
> * sysfs: values in hex
> * Register blocks in a list
> * Narrowing lock scope
> * Use S_IWUSR and S_IRUGO instead of direct octal values
> * Use for_each_set_bit()
> * Change from unsigned to unsigned long for masks and values
> 
> Changes since v2:
> * Added sysfs support
> * Added devicetree support
> * Added support for lpc32xx, generic
> * Added functions for GPIO block registration
> * Added more error checking
> * Bit remapping bugfix
> 
> Changes since v1:
> * API change to 32/64 bit word, bit masks
> 
> Thanks to Ryan Mallon, Linus Walleij, Stijn Devriendt, Jean-Christophe
> Plagniol-Villard, Mark Brown, Greg Kroah-Hartman, Grant Likely, Stefan
> Roese and Wolfgang Grandegger for reviewing!

I re-tried v8 on my AT91-SAM9G45 board and it works fine if
CONFIG_GPIO_SYSFS is enable. Unfortunately, the access via misc device
fails if CONFIG_GPIO_SYSFS is not set. That's due to gpio_block_export()
returning -ENOSYS in gpio_block_register().

Anyway, I really like that new GPIO block interface making life for
applications fiddling with GPIOs much easier and faster. Just the poll
support is missing.

Thanks,

Wolfgang.

WARNING: multiple messages have this Message-ID (diff)
From: Wolfgang Grandegger <wg@grandegger.com>
To: Roland Stigge <stigge@antcom.de>
Cc: gregkh@linuxfoundation.org, 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, plagnioj@jcrosoft.com, highguy@gmail.com,
	broonie@opensource.wolfsonmicro.com, daniel-gl@gmx.net,
	rmallon@gmail.com, tru@work-microwave.de, sr@denx.de
Subject: Re: [PATCH 0/6 v8] gpio: Add block GPIO
Date: Mon, 03 Dec 2012 10:17:05 +0100	[thread overview]
Message-ID: <50BC6E11.3040203@grandegger.com> (raw)
In-Reply-To: <1354298637-25058-1-git-send-email-stigge@antcom.de>

Hi Roland,

On 11/30/2012 07:03 PM, Roland Stigge wrote:
> This set of patches adds:
> 
> * Block GPIO API to gpiolib
> * Sysfs support for GPIO API, to provide userland access
> * Device interface for userland access (alternative to sysfs)
> * Devicetree support to instantiate GPIO blocks via DT
> * Example implementations in several gpio drivers since they need
>   special accessor functions for block wise GPIO access
> * Fix for race condition in gpiolib on device creation
> 
> Signed-off-by: Roland Stigge <stigge@antcom.de>
> --
> 
> Changes since v7:
> * Fixed error in API documentation (name arg missing in prototype)
> * Fixed compile error if sysfs is missing: Moved gpio_block_is_output()
>   out of sysfs-ifdef
> * Added error handling to gpio_block_register()
> * Added mask attribute to sysfs (although dev interface exists now)
> 
> Changes since v6:
> * Changed realloc to list handling
> * Added mask to kernel API
> * Added device interface as userspace API
> * Changed sizeof() to BITS_PER_LONG
> * Fixed multiline comment style
> * Documented direction setting by the user
> * Documented order of handled chips in case of multiple chips in one block
> 
> Changes since v5:
> * Documented sysfs: elaborated on "exported" and "values" attributes
> * Documented sysfs: gpiochip is a separate class now
> * Aggregated driver support patches for block gpio into one single patch
> * Added gpio block driver support for twl6040 and pch
> 
> Changes since v4:
> * Documented word width
> * Bugfix: export/unexport on register/unregister
> * Using default dev_attrs for gpio_block_class
> * Fix gpiolib: race condition on device creation
> * Added driver support for ucb14500, vt8500, xilinx
> 
> Changes since v3:
> * Added driver support for pca953x, em, pl061, max732x, pcf857x
> * Coding style improvements
> * Fixed krealloc memory leak in error case
> * sysfs: values in hex
> * Register blocks in a list
> * Narrowing lock scope
> * Use S_IWUSR and S_IRUGO instead of direct octal values
> * Use for_each_set_bit()
> * Change from unsigned to unsigned long for masks and values
> 
> Changes since v2:
> * Added sysfs support
> * Added devicetree support
> * Added support for lpc32xx, generic
> * Added functions for GPIO block registration
> * Added more error checking
> * Bit remapping bugfix
> 
> Changes since v1:
> * API change to 32/64 bit word, bit masks
> 
> Thanks to Ryan Mallon, Linus Walleij, Stijn Devriendt, Jean-Christophe
> Plagniol-Villard, Mark Brown, Greg Kroah-Hartman, Grant Likely, Stefan
> Roese and Wolfgang Grandegger for reviewing!

I re-tried v8 on my AT91-SAM9G45 board and it works fine if
CONFIG_GPIO_SYSFS is enable. Unfortunately, the access via misc device
fails if CONFIG_GPIO_SYSFS is not set. That's due to gpio_block_export()
returning -ENOSYS in gpio_block_register().

Anyway, I really like that new GPIO block interface making life for
applications fiddling with GPIOs much easier and faster. Just the poll
support is missing.

Thanks,

Wolfgang.

  parent reply	other threads:[~2012-12-03  9:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-30 18:03 [PATCH 0/6 v8] gpio: Add block GPIO Roland Stigge
2012-11-30 18:03 ` Roland Stigge
2012-11-30 18:03 ` [PATCH 1/6 v8] gpio: Add a block GPIO API to gpiolib Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-11-30 18:03 ` [PATCH 2/6 v8] gpio: Add sysfs support to block GPIO API Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-11-30 18:03 ` [PATCH 3/6 v8] gpio: Add userland device interface to block GPIO Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-11-30 18:03 ` [PATCH 4/6 v8] gpiolib: Fix default attributes for class Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-11-30 18:03 ` [PATCH 5/6 v8] gpio: Add device tree support to block GPIO API Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-11-30 18:03 ` [PATCH 6/6 v8] gpio: Add block gpio to several gpio drivers Roland Stigge
2012-11-30 18:03   ` Roland Stigge
2012-12-03  9:17 ` Wolfgang Grandegger [this message]
2012-12-03  9:17   ` [PATCH 0/6 v8] gpio: Add block GPIO Wolfgang Grandegger
2012-12-04 20:39   ` Roland Stigge
2012-12-04 20:39     ` Roland Stigge
2012-12-05 18:44     ` Wolfgang Grandegger
2012-12-05 18:44       ` Wolfgang Grandegger
2012-12-05 22:10       ` Roland Stigge
2012-12-05 22:10         ` Roland Stigge

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=50BC6E11.3040203@grandegger.com \
    --to=wg@grandegger.com \
    --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.