All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bo Shen <voice.shen@atmel.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH 1/3] at91: add new gpio pin macros
Date: Wed, 30 Oct 2013 17:56:36 +0800	[thread overview]
Message-ID: <5270D7D4.1060205@atmel.com> (raw)
In-Reply-To: <1383051191-29363-2-git-send-email-andreas.devel@googlemail.com>

Hi Andreas,

On 10/29/2013 20:53, Andreas Bie?mann wrote:
> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
> ---
>   arch/arm/include/asm/arch-at91/gpio.h |   34 ++++++++++++++++++++++++++++-----
>   1 file changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-at91/gpio.h b/arch/arm/include/asm/arch-at91/gpio.h
> index 0700427..f9ca11e 100644
> --- a/arch/arm/include/asm/arch-at91/gpio.h
> +++ b/arch/arm/include/asm/arch-at91/gpio.h
> @@ -227,8 +227,32 @@ static inline unsigned pin_to_mask(unsigned pin)
>   	at91_set_pio_value((x - PIN_BASE) / 32,(x % 32), y)
>   #define at91_get_gpio_value(x) \
>   	at91_get_pio_value((x - PIN_BASE) / 32,(x % 32))
> -#else
> -#define at91_set_gpio_value(x, y)	at91_set_pio_value(x, y)
> -#define at91_get_gpio_value(x)		at91_get_pio_value(x)
> -#endif
> -#endif
> +#else /* CONFIG_ATMEL_LEGACY */
> +
> +#define GPIO_PIOA_BASE  (0)
> +#define GPIO_PIOB_BASE  (GPIO_PIOA_BASE + 32)
> +#define GPIO_PIOC_BASE  (GPIO_PIOB_BASE + 32)
> +#define GPIO_PIOD_BASE  (GPIO_PIOC_BASE + 32)
> +#define GPIO_PIOE_BASE  (GPIO_PIOD_BASE + 32)
> +#define GPIO_PIN_PA(x)  (GPIO_PIOA_BASE + (x))
> +#define GPIO_PIN_PB(x)  (GPIO_PIOB_BASE + (x))
> +#define GPIO_PIN_PC(x)  (GPIO_PIOC_BASE + (x))
> +#define GPIO_PIN_PD(x)  (GPIO_PIOD_BASE + (x))
> +#define GPIO_PIN_PE(x)  (GPIO_PIOE_BASE + (x))
> +
> +#define at91_gpio_to_port(gpio) (gpio / 32)
> +#define at91_gpio_to_pin(gpio)  (gpio % 32)

This is an exception for at91sam9x5 and at91sam9n12 SoCs, which PIOB and 
PIOD are not 32 pins. PIOB only has 19 pins, while PIOD only has 22 pins.

> +/* remove after transition to generic gpio API of all users */
> +#define at91_set_gpio_value(x, y) \
> +	at91_set_pio_value(at91_gpio_to_port(x), at91_gpio_to_pin(x), y)
> +#define at91_get_gpio_value(x) \
> +	at91_get_pio_value(at91_gpio_to_port(x), at91_gpio_to_pin(x))
> +
> +#define at91_set_gpio_input(x, y) \
> +	at91_set_pio_input(at91_gpio_to_port(x), at91_gpio_to_pin(x), y)
> +#define at91_set_gpio_output(x, y) \
> +	at91_set_pio_output(at91_gpio_to_port(x), at91_gpio_to_pin(x), y)
> +
> +#endif /* CONFIG_ATMEL_LEGACY */
> +#endif /* __ASM_ARCH_AT91_GPIO_H */
>

Best Regards,
Bo Shen

  reply	other threads:[~2013-10-30  9:56 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-29 12:53 [U-Boot] [RFC PATCH 0/3] at91: remove legacy gpio API Andreas Bießmann
2013-10-29 12:53 ` [U-Boot] [RFC PATCH 1/3] at91: add new gpio pin macros Andreas Bießmann
2013-10-30  9:56   ` Bo Shen [this message]
2013-10-30 10:39     ` Andreas Bießmann
2013-10-30 17:19       ` Jens Scharsig
2013-10-30 18:59         ` Andreas Bießmann
2013-10-31  5:04           ` Heiko Schocher
2013-10-29 12:53 ` [U-Boot] [RFC PATCH 2/3] at91sam9263ek: remove ATMEL_LEGACY Andreas Bießmann
2013-10-29 12:53 ` [U-Boot] [RFC PATCH 3/3] at91: use generic gpio API for AT91_LED Andreas Bießmann
2013-11-29 11:13 ` [U-Boot] [PATCH 0/4] at91: remove legacy GPIO API (part 1) Andreas Bießmann
2013-11-29 11:13   ` [U-Boot] [PATCH 1/4] at91: add new gpio pin definitions Andreas Bießmann
2013-12-02  5:27     ` Bo Shen
2013-12-09 12:35     ` [U-Boot] [U-Boot,1/4] " Andreas Bießmann
2013-11-29 11:13   ` [U-Boot] [PATCH 2/4] at91: redefine legacy GPIO PIN_BASE Andreas Bießmann
2013-12-09 12:36     ` [U-Boot] [U-Boot,2/4] " Andreas Bießmann
2013-11-29 11:13   ` [U-Boot] [PATCH 3/4] at91: nand: switch atmel_nand to generic GPIO API Andreas Bießmann
2013-12-02  7:01     ` esw at bus-elektronik.de
2013-12-06 19:16     ` Scott Wood
2013-12-09 12:38     ` [U-Boot] [U-Boot,3/4] " Andreas Bießmann
2013-11-29 11:13   ` [U-Boot] [PATCH 4/4] at91: switch coloured LED to gpio API Andreas Bießmann
2013-12-09 12:38     ` [U-Boot] [U-Boot,4/4] " Andreas Bießmann

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=5270D7D4.1060205@atmel.com \
    --to=voice.shen@atmel.com \
    --cc=u-boot@lists.denx.de \
    /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.