zephyr/drivers/interrupt_controller/cavs_ictl.h
Rajavardhan Gundi 74016bb64c drivers: interrupts: introduce CAVS interrupt logic
CAVS interrupt logic is an intel IP that combines several sources of
interrupt into one line that is then routed to the parent controller.
CAVS stands for "connected Audio, Voice and Speech". This IP supports
4 lines which can have a max of 32 interrupts each.

Change-Id: Ia6be51428bedf1011d148ae1fc5d4c34252c05da
Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-01 16:46:41 -04:00

40 lines
694 B
C

/*
* Copyright (c) 2017 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _CAVS_ICTL_H_
#define _CAVS_ICTL_H_
#include <zephyr/types.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*cavs_ictl_config_irq_t)(struct device *port);
struct cavs_ictl_config {
u32_t irq_num;
u32_t isr_table_offset;
cavs_ictl_config_irq_t config_func;
};
struct cavs_ictl_runtime {
u32_t base_addr;
};
struct cavs_registers {
u32_t disable_il; /* il_msd - offset 0x00 */
u32_t enable_il; /* il_mcd - offset 0x04 */
u32_t disable_state_il; /* il_md - offset 0x08 */
u32_t status_il; /* il_sd - offset 0x0C */
};
#ifdef __cplusplus
}
#endif
#endif /* _CAVS_ICTL_H_ */