Skip to content

Commit

Permalink
[ARM] Orion: add a separate BRIDGE_INT_TIMER1_CLR define
Browse files Browse the repository at this point in the history
Some Feroceon-based SoCs have an MBUS bridge interrupt controller
that requires writing a one instead of a zero to clear edge
interrupt sources such as timer expiry.

This patch adds a new BRIDGE_INT_TIMER1_CLR define, which platform
code can set to either ~BRIDGE_INT_TIMER1 (write-zero-to-clear) or
BRIDGE_INT_TIMER1 (write-one-to-clear) depending on the platform.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
  • Loading branch information
Ke Wei authored and Lennert Buytenhek committed Jun 22, 2008
1 parent ab6d15d commit 1219715
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
6 changes: 3 additions & 3 deletions arch/arm/plat-orion/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ orion_clkevt_next_event(unsigned long delta, struct clock_event_device *dev)
/*
* Clear and enable clockevent timer interrupt.
*/
writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
writel(BRIDGE_INT_TIMER1_CLR, BRIDGE_CAUSE);

u = readl(BRIDGE_MASK);
u |= BRIDGE_INT_TIMER1;
Expand Down Expand Up @@ -138,7 +138,7 @@ orion_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev)
/*
* ACK pending timer interrupt.
*/
writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
writel(BRIDGE_INT_TIMER1_CLR, BRIDGE_CAUSE);

}
local_irq_restore(flags);
Expand All @@ -159,7 +159,7 @@ static irqreturn_t orion_timer_interrupt(int irq, void *dev_id)
/*
* ACK timer interrupt and call event handler.
*/
writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
writel(BRIDGE_INT_TIMER1_CLR, BRIDGE_CAUSE);
orion_clkevt.event_handler(&orion_clkevt);

return IRQ_HANDLED;
Expand Down
1 change: 1 addition & 0 deletions include/asm-arm/arch-orion5x/orion5x.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@
#define BRIDGE_MASK ORION5X_BRIDGE_REG(0x114)
#define BRIDGE_INT_TIMER0 0x0002
#define BRIDGE_INT_TIMER1 0x0004
#define BRIDGE_INT_TIMER1_CLR (~0x0004)
#define MAIN_IRQ_CAUSE ORION5X_BRIDGE_REG(0x200)
#define MAIN_IRQ_MASK ORION5X_BRIDGE_REG(0x204)

Expand Down

0 comments on commit 1219715

Please sign in to comment.