From: stigge@antcom.de (Roland Stigge)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RESEND 0/6 v10] gpio: Add block GPIO
Date: Mon, 17 Dec 2012 14:32:33 +0100 [thread overview]
Message-ID: <50CF1EF1.2070601@antcom.de> (raw)
In-Reply-To: <50CF0744.7040404@grandegger.com>
On 12/17/2012 12:51 PM, Wolfgang Grandegger wrote:
>>> Without having an AT91 available right now, I guess the hardware
>>> interface of this GPIO chip is different from the GPIO block API. While
>>> the hardware has clear and set registers, the val parameter of
>>> at91_gpiolib_set_block() should be interpreted as the actual output
>>> values. See lpc32xx_gpo_set_block() for an example for handling set and
>>> clear registers like this: First, set_bits and clear_bits words are
>>> calculated from mask and val parameters, and finally written to the
>>> respective hardware registers.
>>>
>>> Note that one .set_block() can result in writing both the set and clear
>>> registers of the hardware when val contains both 0s and 1s in
>>> respectively masked positions.
>>
>> Oops, I obviously did not test GPIO block write. The patch below does
>> work now. Feel free to add it to the next version of your series.
>
> The patch lacks an important fix, sorry. Please consider the updated
> patch below.
Thanks!
And I guess Russell is right: If possible, we should write outputs
simultaneously via ODSR (plus OWER/OWDR/OWSR) instead of separate set/clear.
I wonder if we need to save/restore the state of OWSR at every write
operation or if we need/can cache it. Assuming that block GPIO are the
only code in the kernel that manipulates ODSR.
Further: Can we include this patch for arch/arm/mach-at91 via the gpio
subsystem or does it need to go separately via arm-soc.git?
Thanks,
Roland
WARNING: multiple messages have this Message-ID (diff)
From: Roland Stigge <stigge@antcom.de>
To: Wolfgang Grandegger <wg@grandegger.com>
Cc: rmallon@gmail.com, gregkh@linuxfoundation.org,
linus.walleij@linaro.org, broonie@opensource.wolfsonmicro.com,
linux-kernel@vger.kernel.org, w.sang@pengutronix.de,
grant.likely@secretlab.ca, daniel-gl@gmx.net, sr@denx.de,
plagnioj@jcrosoft.com, linux-arm-kernel@lists.infradead.org,
highguy@gmail.com
Subject: Re: [PATCH RESEND 0/6 v10] gpio: Add block GPIO
Date: Mon, 17 Dec 2012 14:32:33 +0100 [thread overview]
Message-ID: <50CF1EF1.2070601@antcom.de> (raw)
In-Reply-To: <50CF0744.7040404@grandegger.com>
On 12/17/2012 12:51 PM, Wolfgang Grandegger wrote:
>>> Without having an AT91 available right now, I guess the hardware
>>> interface of this GPIO chip is different from the GPIO block API. While
>>> the hardware has clear and set registers, the val parameter of
>>> at91_gpiolib_set_block() should be interpreted as the actual output
>>> values. See lpc32xx_gpo_set_block() for an example for handling set and
>>> clear registers like this: First, set_bits and clear_bits words are
>>> calculated from mask and val parameters, and finally written to the
>>> respective hardware registers.
>>>
>>> Note that one .set_block() can result in writing both the set and clear
>>> registers of the hardware when val contains both 0s and 1s in
>>> respectively masked positions.
>>
>> Oops, I obviously did not test GPIO block write. The patch below does
>> work now. Feel free to add it to the next version of your series.
>
> The patch lacks an important fix, sorry. Please consider the updated
> patch below.
Thanks!
And I guess Russell is right: If possible, we should write outputs
simultaneously via ODSR (plus OWER/OWDR/OWSR) instead of separate set/clear.
I wonder if we need to save/restore the state of OWSR at every write
operation or if we need/can cache it. Assuming that block GPIO are the
only code in the kernel that manipulates ODSR.
Further: Can we include this patch for arch/arm/mach-at91 via the gpio
subsystem or does it need to go separately via arm-soc.git?
Thanks,
Roland
next prev parent reply other threads:[~2012-12-17 13:32 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-14 14:26 [PATCH RESEND 0/6 v10] gpio: Add block GPIO Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 14:26 ` [PATCH RESEND 1/6 v10] gpio: Add a block GPIO API to gpiolib Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 14:26 ` [PATCH RESEND 2/6 v10] gpio: Add sysfs support to block GPIO API Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 14:26 ` [PATCH RESEND 3/6 v10] gpio: Add userland device interface to block GPIO Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 14:26 ` [PATCH RESEND 4/6 v10] gpiolib: Fix default attributes for class Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 14:26 ` [PATCH RESEND 5/6 v10] gpio: Add device tree support to block GPIO API Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-17 15:51 ` Mark Rutland
2012-12-17 15:51 ` Mark Rutland
2012-12-18 14:30 ` Roland Stigge
2012-12-18 14:30 ` Roland Stigge
2012-12-18 16:35 ` Mark Rutland
2012-12-18 16:35 ` Mark Rutland
2012-12-14 14:26 ` [PATCH RESEND 6/6 v10] gpio: Add block gpio to several gpio drivers Roland Stigge
2012-12-14 14:26 ` Roland Stigge
2012-12-14 17:58 ` [PATCH RESEND 0/6 v10] gpio: Add block GPIO Wolfgang Grandegger
2012-12-14 17:58 ` Wolfgang Grandegger
2012-12-14 23:49 ` Roland Stigge
2012-12-14 23:49 ` Roland Stigge
2012-12-15 10:51 ` Russell King - ARM Linux
2012-12-15 10:51 ` Russell King - ARM Linux
2012-12-17 11:37 ` Wolfgang Grandegger
2012-12-17 11:37 ` Wolfgang Grandegger
2012-12-17 11:51 ` Wolfgang Grandegger
2012-12-17 11:51 ` Wolfgang Grandegger
2012-12-17 12:10 ` Russell King - ARM Linux
2012-12-17 12:10 ` Russell King - ARM Linux
2012-12-17 14:57 ` Wolfgang Grandegger
2012-12-17 14:57 ` Wolfgang Grandegger
2012-12-17 13:32 ` Roland Stigge [this message]
2012-12-17 13:32 ` Roland Stigge
2012-12-17 13:51 ` Roland Stigge
2012-12-17 13:51 ` Roland Stigge
2012-12-17 16:28 ` Wolfgang Grandegger
2012-12-17 16:28 ` Wolfgang Grandegger
2012-12-17 17:15 ` Roland Stigge
2012-12-17 17:15 ` Roland Stigge
2012-12-17 17:37 ` Wolfgang Grandegger
2012-12-17 17:37 ` Wolfgang Grandegger
2012-12-17 18:02 ` Roland Stigge
2012-12-17 18:02 ` Roland Stigge
2012-12-17 19:47 ` Wolfgang Grandegger
2012-12-17 19:47 ` Wolfgang Grandegger
2012-12-17 21:33 ` Roland Stigge
2012-12-17 21:33 ` Roland Stigge
2012-12-18 6:51 ` Wolfgang Grandegger
2012-12-18 6:51 ` Wolfgang Grandegger
2012-12-18 5:55 ` Jean-Christophe PLAGNIOL-VILLARD
2012-12-18 5:55 ` Jean-Christophe PLAGNIOL-VILLARD
2012-12-18 6:58 ` Wolfgang Grandegger
2012-12-18 6:58 ` Wolfgang Grandegger
2012-12-18 7:54 ` Jean-Christophe PLAGNIOL-VILLARD
2012-12-18 7:54 ` Jean-Christophe PLAGNIOL-VILLARD
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=50CF1EF1.2070601@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.