[PATCH v1.0 3/4] EP93XX: Add more register definition
Christian Gagneraud
cgagneraud at techworks.ie
Mon Oct 5 08:06:16 EDT 2009
H Hartley Sweeten wrote:
> 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.
This was needed for a GPIO based keypad. I will have a look on how to
convert it to use GPIO lib.
>
> On a side note. What tree did you base this patch on? The
> EP93XX_GPIO_EEDRIVE is not currently in mainline.
Linus tree + a couple of pending patches from this ML.
>
>> #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.
OK for GPIO and SPI, but what about the SECURITY and SYSCON_CHIPID
stuff? The idea behind that is to extend in some way board/cpu
specific information.
For example the TS-7XXX boards comes with some options, there is
currently a patch that add a /proc entry to display cpu and board
information (CPU version, CPLD/FPGA firmware version, state of
configuration jumpers, HW options installed, ...)
Regards,
Chris
>
> Regards,
> Hartley
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list