diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-05-20 01:05:33 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-20 08:07:01 -0400 |
commit | 0317e52e046f815b4ec4ac7876f63e4eb47696bd (patch) | |
tree | 00ac62daa38b0b28e42c9cb89dec4f504da08573 /arch/arm/plat-samsung/include/plat | |
parent | 1f1f584c9a1dd234041573d2d1c42620b3966607 (diff) |
ARM: SAMSUNG: Add support for interrupt wakeup-sources
Add support for wakeup-mask style interrupts that share a
single mask register for various different interrupts. This
registers a set of interrupt->bit mappings and the register
they belong to.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-samsung/include/plat')
-rw-r--r-- | arch/arm/plat-samsung/include/plat/wakeup-mask.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/include/plat/wakeup-mask.h b/arch/arm/plat-samsung/include/plat/wakeup-mask.h new file mode 100644 index 000000000000..43e4acd2e1c6 --- /dev/null +++ b/arch/arm/plat-samsung/include/plat/wakeup-mask.h | |||
@@ -0,0 +1,44 @@ | |||
1 | /* arch/arm/plat-samsung/include/plat/wakeup-mask.h | ||
2 | * | ||
3 | * Copyright 2010 Ben Dooks <ben-linux@fluff.org> | ||
4 | * | ||
5 | * Support for wakeup mask interrupts on newer SoCs | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | */ | ||
12 | |||
13 | #ifndef __PLAT_WAKEUP_MASK_H | ||
14 | #define __PLAT_WAKEUP_MASK_H __file__ | ||
15 | |||
16 | /* if no irq yet defined, but still want to mask */ | ||
17 | #define NO_WAKEUP_IRQ (0x90000000) | ||
18 | |||
19 | /** | ||
20 | * struct samsung_wakeup_mask - wakeup mask information | ||
21 | * @irq: The interrupt associated with this wakeup. | ||
22 | * @bit: The bit, as a (1 << bitno) controlling this source. | ||
23 | */ | ||
24 | struct samsung_wakeup_mask { | ||
25 | unsigned int irq; | ||
26 | u32 bit; | ||
27 | }; | ||
28 | |||
29 | /** | ||
30 | * samsung_sync_wakemask - sync wakeup mask information for pm | ||
31 | * @reg: The register that is used. | ||
32 | * @masks: The list of masks to use. | ||
33 | * @nr_masks: The number of entries pointed to buy @masks. | ||
34 | * | ||
35 | * Synchronise the wakeup mask information at suspend time from the list | ||
36 | * of interrupts and control bits in @masks. We do this at suspend time | ||
37 | * as overriding the relevant irq chips is harder and the register is only | ||
38 | * required to be correct before we enter sleep. | ||
39 | */ | ||
40 | extern void samsung_sync_wakemask(void __iomem *reg, | ||
41 | struct samsung_wakeup_mask *masks, | ||
42 | int nr_masks); | ||
43 | |||
44 | #endif /* __PLAT_WAKEUP_MASK_H */ | ||