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