diff options
Diffstat (limited to 'arch/arm/plat-s3c64xx')
-rw-r--r-- | arch/arm/plat-s3c64xx/include/plat/irqs.h | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h index 5ab41ad143b7..bc25689c3f83 100644 --- a/arch/arm/plat-s3c64xx/include/plat/irqs.h +++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h | |||
@@ -153,10 +153,44 @@ | |||
153 | #define S3C_EINT(x) ((x) + S3C_IRQ_EINT_BASE) | 153 | #define S3C_EINT(x) ((x) + S3C_IRQ_EINT_BASE) |
154 | #define IRQ_EINT(x) S3C_EINT(x) | 154 | #define IRQ_EINT(x) S3C_EINT(x) |
155 | 155 | ||
156 | /* Define NR_IRQs here, machine specific can always re-define. | 156 | /* Next the external interrupt groups. These are similar to the IRQ_EINT(x) |
157 | * Currently the IRQ_EINT27 is the last one we can have. */ | 157 | * that they are sourced from the GPIO pins but with a different scheme for |
158 | * priority and source indication. | ||
159 | * | ||
160 | * The IRQ_EINT(x) can be thought of as 'group 0' of the available GPIO | ||
161 | * interrupts, but for historical reasons they are kept apart from these | ||
162 | * next interrupts. | ||
163 | * | ||
164 | * Use IRQ_EINT_GROUP(group, offset) to get the number for use in the | ||
165 | * machine specific support files. | ||
166 | */ | ||
158 | 167 | ||
159 | #define NR_IRQS (S3C_EINT(27) + 1) | 168 | #define IRQ_EINT_GROUP1_NR (15) |
169 | #define IRQ_EINT_GROUP2_NR (8) | ||
170 | #define IRQ_EINT_GROUP3_NR (5) | ||
171 | #define IRQ_EINT_GROUP4_NR (14) | ||
172 | #define IRQ_EINT_GROUP5_NR (7) | ||
173 | #define IRQ_EINT_GROUP6_NR (10) | ||
174 | #define IRQ_EINT_GROUP7_NR (16) | ||
175 | #define IRQ_EINT_GROUP8_NR (15) | ||
176 | #define IRQ_EINT_GROUP9_NR (9) | ||
177 | |||
178 | #define IRQ_EINT_GROUP_BASE S3C_EINT(28) | ||
179 | #define IRQ_EINT_GROUP1_BASE (IRQ_EINT_GROUP_BASE + 0x00) | ||
180 | #define IRQ_EINT_GROUP2_BASE (IRQ_EINT_GROUP1_BASE + IRQ_EINT_GROUP1_NR) | ||
181 | #define IRQ_EINT_GROUP3_BASE (IRQ_EINT_GROUP2_BASE + IRQ_EINT_GROUP2_NR) | ||
182 | #define IRQ_EINT_GROUP4_BASE (IRQ_EINT_GROUP3_BASE + IRQ_EINT_GROUP3_NR) | ||
183 | #define IRQ_EINT_GROUP5_BASE (IRQ_EINT_GROUP4_BASE + IRQ_EINT_GROUP4_NR) | ||
184 | #define IRQ_EINT_GROUP6_BASE (IRQ_EINT_GROUP5_BASE + IRQ_EINT_GROUP5_NR) | ||
185 | #define IRQ_EINT_GROUP7_BASE (IRQ_EINT_GROUP6_BASE + IRQ_EINT_GROUP6_NR) | ||
186 | #define IRQ_EINT_GROUP8_BASE (IRQ_EINT_GROUP7_BASE + IRQ_EINT_GROUP7_NR) | ||
187 | #define IRQ_EINT_GROUP9_BASE (IRQ_EINT_GROUP8_BASE + IRQ_EINT_GROUP8_NR) | ||
188 | |||
189 | #define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##__BASE + (x)) | ||
190 | |||
191 | /* Set the default NR_IRQS */ | ||
192 | |||
193 | #define NR_IRQS (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) | ||
160 | 194 | ||
161 | #endif /* __ASM_PLAT_S3C64XX_IRQS_H */ | 195 | #endif /* __ASM_PLAT_S3C64XX_IRQS_H */ |
162 | 196 | ||