1 /*
2  * Copyright (c) 2015 MediaTek Inc.
3  *
4  * Use of this source code is governed by a MIT-style
5  * license that can be found in the LICENSE file or at
6  * https://opensource.org/licenses/MIT
7  */
8 #pragma once
9 
10 #include "platform/mt_irq.h"
11 
12 #define IRQ_REGS    ((NR_IRQ_LINE + (32 - 1)) >> 5)
13 
14 enum {IRQ_MASK_HEADER = 0xF1F1F1F1, IRQ_MASK_FOOTER = 0xF2F2F2F2};
15 
16 struct mtk_irq_mask {
17     unsigned int header;   /* for error checking */
18     unsigned int mask[IRQ_REGS];
19     unsigned int footer;   /* for error checking */
20 };
21 
22 int mt_irq_mask_all(struct mtk_irq_mask *mask); //(This is ONLY used for the sleep driver)
23 int mt_irq_mask_restore(struct mtk_irq_mask *mask); //(This is ONLY used for the sleep driver)
24 void mt_irq_set_sens(unsigned int irq, unsigned int sens);
25 void mt_irq_set_polarity(unsigned int irq, unsigned int polarity);
26 void mt_irq_mask(unsigned int irq);
27 void mt_irq_unmask(unsigned int irq);
28 uint32_t mt_irq_get(void);
29 void mt_irq_ack(unsigned int irq);
30 
31 void platform_init_interrupts(void);
32 void platform_deinit_interrupts(void);
33 void mt_irq_register_dump(void);
34 
35