[PATCH v1.0 3/4] EP93XX: Add more register definition

H Hartley Sweeten hartleys at visionengravers.com
Sun Oct 4 19:09:50 EDT 2009


On Saturday, October 03, 2009 6:14 PM, Christian Gagneraud wrote:
> Add register definition for GPIO A,B,C and D data and data direction,
> Security, Chip ID, ...
> 
> Signed-off-by: Matthieu Crapet <mcrapet at gmail.com>
> Signed-off-by: Christian Gagneraud <cgagneraud at techworks.ie>
> ---
> 
>  arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
> index c5216fc..a5f721e 100644
> --- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
> +++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
> @@ -111,28 +111,42 @@
>  #define EP93XX_I2S_BASE			EP93XX_APB_IOMEM(0x00020000)
>  
>  #define EP93XX_SECURITY_BASE		EP93XX_APB_IOMEM(0x00030000)
> +#define EP93XX_SECURITY_REG(x)		(EP93XX_SECURITY_BASE + (x))
> +#define EP93XX_SECURITY_UNIQID		EP93XX_SECURITY_REG(0x2440)
>  
>  #define EP93XX_GPIO_BASE		EP93XX_APB_IOMEM(0x00040000)
>  #define EP93XX_GPIO_REG(x)		(EP93XX_GPIO_BASE + (x))
> +#define EP93XX_GPIO_A_DATA		EP93XX_GPIO_REG(0x00)
> +#define EP93XX_GPIO_B_DATA		EP93XX_GPIO_REG(0x04)
> +#define EP93XX_GPIO_C_DATA		EP93XX_GPIO_REG(0x08)
> +#define EP93XX_GPIO_D_DATA		EP93XX_GPIO_REG(0x0C)
> +#define EP93XX_GPIO_A_DIR		EP93XX_GPIO_REG(0x10)
> +#define EP93XX_GPIO_B_DIR		EP93XX_GPIO_REG(0x14)
> +#define EP93XX_GPIO_C_DIR		EP93XX_GPIO_REG(0x18)
> +#define EP93XX_GPIO_D_DIR		EP93XX_GPIO_REG(0x1C)
>  #define EP93XX_GPIO_F_INT_TYPE1		EP93XX_GPIO_REG(0x4c)
>  #define EP93XX_GPIO_F_INT_TYPE2		EP93XX_GPIO_REG(0x50)
>  #define EP93XX_GPIO_F_INT_ACK		EP93XX_GPIO_REG(0x54)
>  #define EP93XX_GPIO_F_INT_ENABLE	EP93XX_GPIO_REG(0x58)
>  #define EP93XX_GPIO_F_INT_STATUS	EP93XX_GPIO_REG(0x5c)
> +#define EP93XX_GPIO_F_INT_DEBOUNCE	EP93XX_GPIO_REG(0x64)
>  #define EP93XX_GPIO_A_INT_TYPE1		EP93XX_GPIO_REG(0x90)
>  #define EP93XX_GPIO_A_INT_TYPE2		EP93XX_GPIO_REG(0x94)
>  #define EP93XX_GPIO_A_INT_ACK		EP93XX_GPIO_REG(0x98)
>  #define EP93XX_GPIO_A_INT_ENABLE	EP93XX_GPIO_REG(0x9c)
> +#define EP93XX_GPIO_A_INT_DEBOUNCE	EP93XX_GPIO_REG(0xa8)
>  #define EP93XX_GPIO_A_INT_STATUS	EP93XX_GPIO_REG(0xa0)
>  #define EP93XX_GPIO_B_INT_TYPE1		EP93XX_GPIO_REG(0xac)
>  #define EP93XX_GPIO_B_INT_TYPE2		EP93XX_GPIO_REG(0xb0)
>  #define EP93XX_GPIO_B_INT_ACK		EP93XX_GPIO_REG(0xb4)
>  #define EP93XX_GPIO_B_INT_ENABLE	EP93XX_GPIO_REG(0xb8)
>  #define EP93XX_GPIO_B_INT_STATUS	EP93XX_GPIO_REG(0xbc)
> +#define EP93XX_GPIO_B_INT_DEBOUNCE	EP93XX_GPIO_REG(0xc4)
>  #define EP93XX_GPIO_EEDRIVE		EP93XX_GPIO_REG(0xc8)

The ep93xx has been converted to full gpiolib support.  There
is no need for the GPIO register defines.  Also, it's a bad
idea to have them since anything using these will be "breaking"
the gpiolib API.

If you need to use the gpio debounce the ep93xx core already has
support for this.  Please see ep93xx_gpio_int_debounce() in
arch/arm/mach-ep93xx/core.c.

On a side note.  What tree did you base this patch on?  The
EP93XX_GPIO_EEDRIVE is not currently in mainline.

>  #define EP93XX_AAC_BASE			EP93XX_APB_IOMEM(0x00080000)
>  
> +#define EP93XX_SPI_PHYS_BASE		EP93XX_APB_PHYS(0x000a0000)
>  #define EP93XX_SPI_BASE			EP93XX_APB_IOMEM(0x000a0000)
>  
>  #define EP93XX_IRDA_BASE		EP93XX_APB_IOMEM(0x000b0000)
> @@ -221,6 +235,7 @@
>  #define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV	(1<<16)
>  #define EP93XX_SYSCON_KEYTCHCLKDIV_KEN	(1<<15)
>  #define EP93XX_SYSCON_KEYTCHCLKDIV_KDIV	(1<<0)
> +#define EP93XX_SYSCON_CHIPID		EP93XX_SYSCON_REG(0x94)
>  #define EP93XX_SYSCON_SWLOCK		EP93XX_SYSCON_REG(0xc0)
>  
>  #define EP93XX_WATCHDOG_BASE		EP93XX_APB_IOMEM(0x00140000)

NAK.

Regards,
Hartley



More information about the linux-arm-kernel mailing list