[U-Boot] [PATCH v2] ATMEL/PIO: Enable new feature of PIO on Atmel device

Andreas Bießmann andreas.devel at googlemail.com
Wed May 16 12:42:02 CEST 2012


Dear Bo Shen,

On 16.05.2012 04:16, Bo Shen wrote:
> v2:
>   Remove legacy interface.
> 
> v1:
>   Enable new PIO feature supported by Atmel SoC.
>   Using CPU_HAS_PIO3 micro to enable PIO new feature.

these go behind the '---' line. All before the '---' will be the git
commit message. The git commit message should not contain the history!

Please read http://www.denx.de/wiki/U-Boot/Patches for that.

> Signed-off-by: Bo Shen <voice.shen at atmel.com>
> ---
>  arch/arm/include/asm/arch-at91/at91_pio.h |   78 ++++++++++--------
>  drivers/gpio/at91_gpio.c                  |  125 ++++++++++++++++++++++++++++-
>  2 files changed, 167 insertions(+), 36 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-at91/at91_pio.h b/arch/arm/include/asm/arch-at91/at91_pio.h
> index 416cabf..0ec2dca 100644
> --- a/arch/arm/include/asm/arch-at91/at91_pio.h
> +++ b/arch/arm/include/asm/arch-at91/at91_pio.h

<snip new interface>

new interface looks good so far, but seems there are no users currently
(will there new at91 devices coming soon?)

> -#ifdef CONFIG_AT91_LEGACY
> -
> -#define PIO_PER		0x00	/* Enable Register */
> -#define PIO_PDR		0x04	/* Disable Register */
> -#define PIO_PSR		0x08	/* Status Register */
> -#define PIO_OER		0x10	/* Output Enable Register */
> -#define PIO_ODR		0x14	/* Output Disable Register */
> -#define PIO_OSR		0x18	/* Output Status Register */
> -#define PIO_IFER	0x20	/* Glitch Input Filter Enable */
> -#define PIO_IFDR	0x24	/* Glitch Input Filter Disable */
> -#define PIO_IFSR	0x28	/* Glitch Input Filter Status */
> -#define PIO_SODR	0x30	/* Set Output Data Register */
> -#define PIO_CODR	0x34	/* Clear Output Data Register */
> -#define PIO_ODSR	0x38	/* Output Data Status Register */
> -#define PIO_PDSR	0x3c	/* Pin Data Status Register */
> -#define PIO_IER		0x40	/* Interrupt Enable Register */
> -#define PIO_IDR		0x44	/* Interrupt Disable Register */
> -#define PIO_IMR		0x48	/* Interrupt Mask Register */
> -#define PIO_ISR		0x4c	/* Interrupt Status Register */
> -#define PIO_MDER	0x50	/* Multi-driver Enable Register */
> -#define PIO_MDDR	0x54	/* Multi-driver Disable Register */
> -#define PIO_MDSR	0x58	/* Multi-driver Status Register */
> -#define PIO_PUDR	0x60	/* Pull-up Disable Register */
> -#define PIO_PUER	0x64	/* Pull-up Enable Register */
> -#define PIO_PUSR	0x68	/* Pull-up Status Register */
> -#define PIO_ASR		0x70	/* Peripheral A Select Register */
> -#define PIO_BSR		0x74	/* Peripheral B Select Register */
> -#define PIO_ABSR	0x78	/* AB Status Register */
> -#define PIO_OWER	0xa0	/* Output Write Enable Register */
> -#define PIO_OWDR	0xa4	/* Output Write Disable Register */
> -#define PIO_OWSR	0xa8	/* Output Write Status Register */
> -#endif
> -

I think this should be done in a separate patch (series). There are a
lot of CONFIG_AT91_LEGACY left somewhere in the code. Please read
doc/README.at91-soc; I think step 4 is reached so step 5 should follow.

For this patch I think it would be best to not touch these definitions
at all.
A second patch (series) fulfilling step 5 in doc/README.at91-soc would
be great ;)

best regards

Andreas Bießmann


More information about the U-Boot mailing list