summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>2016-11-22 11:10:27 -0500
committerLee Jones <lee.jones@linaro.org>2017-02-13 04:29:40 -0500
commit1a86dcb3f1405a0152b9df7cebb75b839386c997 (patch)
tree7a762359b594bbec4e076165601e9e8394069e73
parent003db34ef33eb2d8848e0962bd72ee42d7344271 (diff)
mfd: arizona: Add defines for IRQs on the main Arizona IRQ domain
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r--drivers/mfd/arizona-irq.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 724fa5404306..88729cf6cb32 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -26,6 +26,9 @@
26 26
27#include "arizona.h" 27#include "arizona.h"
28 28
29#define ARIZONA_AOD_IRQ_INDEX 0
30#define ARIZONA_MAIN_IRQ_INDEX 1
31
29static int arizona_map_irq(struct arizona *arizona, int irq) 32static int arizona_map_irq(struct arizona *arizona, int irq)
30{ 33{
31 int ret; 34 int ret;
@@ -319,7 +322,8 @@ int arizona_irq_init(struct arizona *arizona)
319 322
320 if (aod) { 323 if (aod) {
321 ret = regmap_add_irq_chip(arizona->regmap, 324 ret = regmap_add_irq_chip(arizona->regmap,
322 irq_create_mapping(arizona->virq, 0), 325 irq_create_mapping(arizona->virq,
326 ARIZONA_AOD_IRQ_INDEX),
323 IRQF_ONESHOT, 0, aod, 327 IRQF_ONESHOT, 0, aod,
324 &arizona->aod_irq_chip); 328 &arizona->aod_irq_chip);
325 if (ret != 0) { 329 if (ret != 0) {
@@ -330,7 +334,8 @@ int arizona_irq_init(struct arizona *arizona)
330 } 334 }
331 335
332 ret = regmap_add_irq_chip(arizona->regmap, 336 ret = regmap_add_irq_chip(arizona->regmap,
333 irq_create_mapping(arizona->virq, 1), 337 irq_create_mapping(arizona->virq,
338 ARIZONA_MAIN_IRQ_INDEX),
334 IRQF_ONESHOT, 0, irq, 339 IRQF_ONESHOT, 0, irq,
335 &arizona->irq_chip); 340 &arizona->irq_chip);
336 if (ret != 0) { 341 if (ret != 0) {
@@ -396,10 +401,12 @@ err_ctrlif:
396err_boot_done: 401err_boot_done:
397 free_irq(arizona->irq, arizona); 402 free_irq(arizona->irq, arizona);
398err_main_irq: 403err_main_irq:
399 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 1), 404 regmap_del_irq_chip(irq_find_mapping(arizona->virq,
405 ARIZONA_MAIN_IRQ_INDEX),
400 arizona->irq_chip); 406 arizona->irq_chip);
401err_aod: 407err_aod:
402 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 0), 408 regmap_del_irq_chip(irq_find_mapping(arizona->virq,
409 ARIZONA_AOD_IRQ_INDEX),
403 arizona->aod_irq_chip); 410 arizona->aod_irq_chip);
404err: 411err:
405 return ret; 412 return ret;
@@ -411,9 +418,11 @@ int arizona_irq_exit(struct arizona *arizona)
411 arizona_free_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR, arizona); 418 arizona_free_irq(arizona, ARIZONA_IRQ_CTRLIF_ERR, arizona);
412 arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona); 419 arizona_free_irq(arizona, ARIZONA_IRQ_BOOT_DONE, arizona);
413 420
414 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 1), 421 regmap_del_irq_chip(irq_find_mapping(arizona->virq,
422 ARIZONA_MAIN_IRQ_INDEX),
415 arizona->irq_chip); 423 arizona->irq_chip);
416 regmap_del_irq_chip(irq_find_mapping(arizona->virq, 0), 424 regmap_del_irq_chip(irq_find_mapping(arizona->virq,
425 ARIZONA_AOD_IRQ_INDEX),
417 arizona->aod_irq_chip); 426 arizona->aod_irq_chip);
418 free_irq(arizona->irq, arizona); 427 free_irq(arizona->irq, arizona);
419 428