mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
IXP: Fix GPIO_INT_ACT_LOW_SET()
The GPIO_INT_ACT_LOW_SET was incorrectly handling interrupt lines higher than 7. This is due to the fact that there are two registers for total of 16 lines. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Bryan Hundven <bryanhundven@gmail.com> Cc: Michael Schwingen <rincewind@discworld.dascon.de>
This commit is contained in:
parent
44e63c228e
commit
cd207cde94
1 changed files with 8 additions and 2 deletions
|
@ -358,6 +358,9 @@
|
|||
#define IXP425_GPIO_GPCLKR IXP425_GPIO_REG(IXP425_GPIO_GPCLKR_OFFSET)
|
||||
#define IXP425_GPIO_GPDBSELR IXP425_GPIO_REG(IXP425_GPIO_GPDBSELR_OFFSET)
|
||||
|
||||
#define IXP425_GPIO_GPITR(line) (((line) >= 8) ? \
|
||||
IXP425_GPIO_GPIT2R : IXP425_GPIO_GPIT1R)
|
||||
|
||||
/*
|
||||
* Macros to make it easy to access the GPIO registers
|
||||
*/
|
||||
|
@ -365,8 +368,11 @@
|
|||
#define GPIO_OUTPUT_DISABLE(line) *IXP425_GPIO_GPOER |= (1 << (line))
|
||||
#define GPIO_OUTPUT_SET(line) *IXP425_GPIO_GPOUTR |= (1 << (line))
|
||||
#define GPIO_OUTPUT_CLEAR(line) *IXP425_GPIO_GPOUTR &= ~(1 << (line))
|
||||
#define GPIO_INT_ACT_LOW_SET(line) *IXP425_GPIO_GPIT1R = \
|
||||
(*IXP425_GPIO_GPIT1R & ~(0x7 << (line * 3))) | (0x1 << (line * 3))
|
||||
#define GPIO_INT_ACT_LOW_SET(line) \
|
||||
*IXP425_GPIO_GPITR(line) = \
|
||||
(*IXP425_GPIO_GPITR(line) & \
|
||||
~(0x7 << (((line) & 0x7) * 3))) | \
|
||||
(0x1 << (((line) & 0x7) * 3)) \
|
||||
|
||||
/*
|
||||
* Constants to make it easy to access Timer Control/Status registers
|
||||
|
|
Loading…
Add table
Reference in a new issue