1 /* 2 * Copyright (c) 2006-2021, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2013-07-20 Bernard first version 9 */ 10 11 #ifndef __GIC_H__ 12 #define __GIC_H__ 13 14 #include <rthw.h> 15 #include <board.h> 16 17 int arm_gic_get_active_irq(rt_uint32_t index); 18 void arm_gic_ack(rt_uint32_t index, int irq); 19 20 void arm_gic_mask(rt_uint32_t index, int irq); 21 void arm_gic_umask(rt_uint32_t index, int irq); 22 23 rt_uint32_t arm_gic_get_pending_irq(rt_uint32_t index, int irq); 24 void arm_gic_set_pending_irq(rt_uint32_t index, int irq); 25 void arm_gic_clear_pending_irq(rt_uint32_t index, int irq); 26 27 void arm_gic_set_configuration(rt_uint32_t index, int irq, rt_uint32_t config); 28 rt_uint32_t arm_gic_get_configuration(rt_uint32_t index, int irq); 29 30 void arm_gic_clear_active(rt_uint32_t index, int irq); 31 32 void arm_gic_set_cpu(rt_uint32_t index, int irq, unsigned int cpumask); 33 rt_uint32_t arm_gic_get_target_cpu(rt_uint32_t index, int irq); 34 35 void arm_gic_set_priority(rt_uint32_t index, int irq, rt_uint32_t priority); 36 rt_uint32_t arm_gic_get_priority(rt_uint32_t index, int irq); 37 38 void arm_gic_set_interface_prior_mask(rt_uint32_t index, rt_uint32_t priority); 39 rt_uint32_t arm_gic_get_interface_prior_mask(rt_uint32_t index); 40 41 void arm_gic_set_binary_point(rt_uint32_t index, rt_uint32_t binary_point); 42 rt_uint32_t arm_gic_get_binary_point(rt_uint32_t index); 43 44 rt_uint32_t arm_gic_get_irq_status(rt_uint32_t index, int irq); 45 46 void arm_gic_send_sgi(rt_uint32_t index, int irq, rt_uint32_t target_list, rt_uint32_t filter_list); 47 48 rt_uint32_t arm_gic_get_high_pending_irq(rt_uint32_t index); 49 50 rt_uint32_t arm_gic_get_interface_id(rt_uint32_t index); 51 52 void arm_gic_set_group(rt_uint32_t index, int irq, rt_uint32_t group); 53 rt_uint32_t arm_gic_get_group(rt_uint32_t index, int irq); 54 55 int arm_gic_dist_init(rt_uint32_t index, rt_uint32_t dist_base, int irq_start); 56 int arm_gic_cpu_init(rt_uint32_t index, rt_uint32_t cpu_base); 57 58 void arm_gic_dump_type(rt_uint32_t index); 59 void arm_gic_dump(rt_uint32_t index); 60 61 #endif 62 63