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 RESEND 0/6 v10] gpio: Add block GPIO
Date: Sat, 15 Dec 2012 00:49:57 +0100	[thread overview]
Message-ID: <50CBBB25.20002@antcom.de> (raw)
In-Reply-To: <50CB68AB.5070806@grandegger.com>

Hi Wolfgang,

thank you for the patch!

On 14/12/12 18:58, Wolfgang Grandegger wrote:
> +static void at91_gpiolib_set_block(struct gpio_chip *chip, unsigned long mask, unsigned long val)
> +{
> +	struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
> +	void __iomem *pio = at91_gpio->regbase;
> +
> +	__raw_writel(mask, pio + (val ? PIO_SODR : PIO_CODR));
> +}
> +

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.

Roland

WARNING: multiple messages have this Message-ID (diff)
From: Roland Stigge <stigge@antcom.de>
To: Wolfgang Grandegger <wg@grandegger.com>
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, sr@denx.de
Subject: Re: [PATCH RESEND 0/6 v10] gpio: Add block GPIO
Date: Sat, 15 Dec 2012 00:49:57 +0100	[thread overview]
Message-ID: <50CBBB25.20002@antcom.de> (raw)
In-Reply-To: <50CB68AB.5070806@grandegger.com>

Hi Wolfgang,

thank you for the patch!

On 14/12/12 18:58, Wolfgang Grandegger wrote:
> +static void at91_gpiolib_set_block(struct gpio_chip *chip, unsigned long mask, unsigned long val)
> +{
> +	struct at91_gpio_chip *at91_gpio = to_at91_gpio_chip(chip);
> +	void __iomem *pio = at91_gpio->regbase;
> +
> +	__raw_writel(mask, pio + (val ? PIO_SODR : PIO_CODR));
> +}
> +

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.

Roland

  reply	other threads:[~2012-12-14 23:49 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 [this message]
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
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=50CBBB25.20002@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.