Skip to content

Commit

Permalink
ARM: S5P: Unify defines for both gpio interrupt types
Browse files Browse the repository at this point in the history
Samsung S5P SoCs have the same interrupt type defines for both
external interrupts and gpio interrupts. This patch removes all
duplicates from S5PC100 and S5PV210 specific includes as well as
gpio interrupt code and put a common defines to plat/irqs.h
NOTE: Do not use this for S5P6440 and S5P6450.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[kgene.kim@samsung.com: add note for S5P64X0]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
  • Loading branch information
Marek Szyprowski authored and Kukjin Kim committed Oct 20, 2010
1 parent 8ce14a2 commit 9adf5d2
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 30 deletions.
7 changes: 0 additions & 7 deletions arch/arm/mach-s5pc100/include/mach/regs-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,6 @@

#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))

/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
#define S5P_EXTINT_HILEV (0x01)
#define S5P_EXTINT_FALLEDGE (0x02)
#define S5P_EXTINT_RISEEDGE (0x03)
#define S5P_EXTINT_BOTHEDGE (0x04)

#define EINT_MODE S3C_GPIO_SFN(0x2)

#define EINT_GPIO_0(x) S5PC100_GPH0(x)
Expand Down
7 changes: 0 additions & 7 deletions arch/arm/mach-s5pv210/include/mach/regs-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,6 @@

#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))

/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
#define S5P_EXTINT_HILEV (0x01)
#define S5P_EXTINT_FALLEDGE (0x02)
#define S5P_EXTINT_RISEEDGE (0x03)
#define S5P_EXTINT_BOTHEDGE (0x04)

#define EINT_MODE S3C_GPIO_SFN(0xf)

#define EINT_GPIO_0(x) S5PV210_GPH0(x)
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/plat-s5p/include/plat/irqs.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,11 @@
#define S5P_GPIOINT_GROUP_SIZE 8
#define S5P_GPIOINT_COUNT (S5P_GPIOINT_GROUP_COUNT * S5P_GPIOINT_GROUP_SIZE)

/* IRQ types common for all s5p platforms */
#define S5P_IRQ_TYPE_LEVEL_LOW (0x00)
#define S5P_IRQ_TYPE_LEVEL_HIGH (0x01)
#define S5P_IRQ_TYPE_EDGE_FALLING (0x02)
#define S5P_IRQ_TYPE_EDGE_RISING (0x03)
#define S5P_IRQ_TYPE_EDGE_BOTH (0x04)

#endif /* __ASM_PLAT_S5P_IRQS_H */
10 changes: 5 additions & 5 deletions arch/arm/plat-s5p/irq-eint.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,23 +67,23 @@ static int s5p_irq_eint_set_type(unsigned int irq, unsigned int type)

switch (type) {
case IRQ_TYPE_EDGE_RISING:
newvalue = S5P_EXTINT_RISEEDGE;
newvalue = S5P_IRQ_TYPE_EDGE_RISING;
break;

case IRQ_TYPE_EDGE_FALLING:
newvalue = S5P_EXTINT_FALLEDGE;
newvalue = S5P_IRQ_TYPE_EDGE_FALLING;
break;

case IRQ_TYPE_EDGE_BOTH:
newvalue = S5P_EXTINT_BOTHEDGE;
newvalue = S5P_IRQ_TYPE_EDGE_BOTH;
break;

case IRQ_TYPE_LEVEL_LOW:
newvalue = S5P_EXTINT_LOWLEV;
newvalue = S5P_IRQ_TYPE_LEVEL_LOW;
break;

case IRQ_TYPE_LEVEL_HIGH:
newvalue = S5P_EXTINT_HILEV;
newvalue = S5P_IRQ_TYPE_LEVEL_HIGH;
break;

default:
Expand Down
16 changes: 5 additions & 11 deletions arch/arm/plat-s5p/irq-gpioint.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,6 @@
#define GPIOINT_MASK_OFFSET 0x900
#define GPIOINT_PEND_OFFSET 0xA00

#define GPIOINT_LEVEL_LOW 0x0
#define GPIOINT_LEVEL_HIGH 0x1
#define GPIOINT_EDGE_FALLING 0x2
#define GPIOINT_EDGE_RISING 0x3
#define GPIOINT_EDGE_BOTH 0x4

static struct s3c_gpio_chip *irq_chips[S5P_GPIOINT_GROUP_MAXNR];

static int s5p_gpioint_get_group(unsigned int irq)
Expand Down Expand Up @@ -118,19 +112,19 @@ static int s5p_gpioint_set_type(unsigned int irq, unsigned int type)

switch (type) {
case IRQ_TYPE_EDGE_RISING:
type = GPIOINT_EDGE_RISING;
type = S5P_IRQ_TYPE_EDGE_RISING;
break;
case IRQ_TYPE_EDGE_FALLING:
type = GPIOINT_EDGE_FALLING;
type = S5P_IRQ_TYPE_EDGE_FALLING;
break;
case IRQ_TYPE_EDGE_BOTH:
type = GPIOINT_EDGE_BOTH;
type = S5P_IRQ_TYPE_EDGE_BOTH;
break;
case IRQ_TYPE_LEVEL_HIGH:
type = GPIOINT_LEVEL_HIGH;
type = S5P_IRQ_TYPE_LEVEL_HIGH;
break;
case IRQ_TYPE_LEVEL_LOW:
type = GPIOINT_LEVEL_LOW;
type = S5P_IRQ_TYPE_LEVEL_LOW;
break;
case IRQ_TYPE_NONE:
default:
Expand Down

0 comments on commit 9adf5d2

Please sign in to comment.