Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 77483
b: refs/heads/master
c: 0baada2
h: refs/heads/master
i:
  77481: eae9c2d
  77479: a9aa020
v: v3
  • Loading branch information
Ben Dooks authored and Russell King committed Jan 28, 2008
1 parent 99f75e1 commit 08d0656
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8e3007a0e8a0d2f5e3139cb9fe606c2a998b9ed3
refs/heads/master: 0baada2742a42390a2ebed09e07e1fab518db884
24 changes: 24 additions & 0 deletions trunk/arch/arm/mach-s3c2412/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include <asm/arch/regs-irq.h>
#include <asm/arch/regs-gpio.h>
#include <asm/arch/regs-power.h>

#include <asm/plat-s3c24xx/cpu.h>
#include <asm/plat-s3c24xx/irq.h>
Expand Down Expand Up @@ -153,6 +154,22 @@ static struct irq_chip s3c2412_irq_cfsdi = {
.unmask = s3c2412_irq_cfsdi_unmask,
};

static int s3c2412_irq_rtc_wake(unsigned int irqno, unsigned int state)
{
unsigned long pwrcfg;

pwrcfg = __raw_readl(S3C2412_PWRCFG);
if (state)
pwrcfg &= ~S3C2412_PWRCFG_RTC_MASKIRQ;
else
pwrcfg |= S3C2412_PWRCFG_RTC_MASKIRQ;
__raw_writel(pwrcfg, S3C2412_PWRCFG);

return s3c_irq_chip.set_wake(irqno, state);
}

static struct irq_chip s3c2412_irq_rtc_chip;

static int s3c2412_irq_add(struct sys_device *sysdev)
{
unsigned int irqno;
Expand All @@ -173,6 +190,13 @@ static int s3c2412_irq_add(struct sys_device *sysdev)
set_irq_flags(irqno, IRQF_VALID);
}

/* change RTC IRQ's set wake method */

s3c2412_irq_rtc_chip = s3c_irq_chip;
s3c2412_irq_rtc_chip.set_wake = s3c2412_irq_rtc_wake;

set_irq_chip(IRQ_RTC, &s3c2412_irq_rtc_chip);

return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/plat-s3c24xx/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ struct irq_chip s3c_irq_level_chip = {
.set_wake = s3c_irq_wake
};

static struct irq_chip s3c_irq_chip = {
struct irq_chip s3c_irq_chip = {
.name = "s3c",
.ack = s3c_irq_ack,
.mask = s3c_irq_mask,
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/asm-arm/plat-s3c24xx/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@

#define EXTINT_OFF (IRQ_EINT4 - 4)

/* these are exported for arch/arm/mach-* usage */
extern struct irq_chip s3c_irq_level_chip;
extern struct irq_chip s3c_irq_chip;

static inline void
s3c_irqsub_mask(unsigned int irqno, unsigned int parentbit,
Expand Down

0 comments on commit 08d0656

Please sign in to comment.