1*12438b45SMarouene Boubakri /* SPDX-License-Identifier: BSD-2-Clause */ 2*12438b45SMarouene Boubakri /* 3*12438b45SMarouene Boubakri * Copyright 2022-2023 NXP 4*12438b45SMarouene Boubakri */ 5*12438b45SMarouene Boubakri 6*12438b45SMarouene Boubakri #ifndef DRIVERS_PLIC_H 7*12438b45SMarouene Boubakri #define DRIVERS_PLIC_H 8*12438b45SMarouene Boubakri 9*12438b45SMarouene Boubakri #include <kernel/interrupt.h> 10*12438b45SMarouene Boubakri #include <kernel/misc.h> 11*12438b45SMarouene Boubakri #include <platform_config.h> 12*12438b45SMarouene Boubakri 13*12438b45SMarouene Boubakri struct plic_data { 14*12438b45SMarouene Boubakri vaddr_t plic_base; 15*12438b45SMarouene Boubakri size_t max_it; 16*12438b45SMarouene Boubakri struct itr_chip chip; 17*12438b45SMarouene Boubakri }; 18*12438b45SMarouene Boubakri 19*12438b45SMarouene Boubakri void plic_init(struct plic_data *pd, paddr_t plic_base_pa); 20*12438b45SMarouene Boubakri void plic_init_base_addr(struct plic_data *pd, paddr_t plic_base_pa); 21*12438b45SMarouene Boubakri void plic_hart_init(struct plic_data *pd); 22*12438b45SMarouene Boubakri void plic_it_handle(struct plic_data *pd); 23*12438b45SMarouene Boubakri void plic_dump_state(struct plic_data *pd); 24*12438b45SMarouene Boubakri 25*12438b45SMarouene Boubakri #endif /*DRIVERS_PLIC_H*/ 26