blob: 1cec5cc810997cd42fbdf740268f3dae700734c6 [file] [log] [blame]
/*
* Copyright (c) 2022 Carlo Caione <ccaione@baylibre.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Driver for Platform Level Interrupt Controller (PLIC)
*/
#ifndef ZEPHYR_INCLUDE_DRIVERS_RISCV_PLIC_H_
#define ZEPHYR_INCLUDE_DRIVERS_RISCV_PLIC_H_
/**
* @brief Enable interrupt
*
* @param irq interrupt ID
*/
void riscv_plic_irq_enable(uint32_t irq);
/**
* @brief Disable interrupt
*
* @param irq interrupt ID
*/
void riscv_plic_irq_disable(uint32_t irq);
/**
* @brief Check if an interrupt is enabled
*
* @param irq interrupt ID
* @return Returns true if interrupt is enabled, false otherwise
*/
int riscv_plic_irq_is_enabled(uint32_t irq);
/**
* @brief Set interrupt priority
*
* @param irq interrupt ID
* @param prio interrupt priority
*/
void riscv_plic_set_priority(uint32_t irq, uint32_t prio);
/**
* @brief Get active interrupt ID
*
* @return Returns the ID of an active interrupt
*/
int riscv_plic_get_irq(void);
#endif /* ZEPHYR_INCLUDE_DRIVERS_RISCV_PLIC_H_ */