| /* |
| * Copyright 2024 NXP |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** |
| * @file |
| * Interrupt Narrow Band Unit. This is meant for a RCP radio device. |
| */ |
| |
| /* -------------------------------------------------------------------------- */ |
| /* Includes */ |
| /* -------------------------------------------------------------------------- */ |
| #include <zephyr/irq.h> |
| |
| /* -------------------------------------------------------------------------- */ |
| /* Definitions */ |
| /* -------------------------------------------------------------------------- */ |
| #define DT_DRV_COMPAT nxp_nbu |
| |
| #define NBU_RX_IRQ_N DT_IRQ_BY_NAME(DT_DRV_INST(0), nbu_rx_int, irq) |
| #define NBU_RX_IRQ_P DT_IRQ_BY_NAME(DT_DRV_INST(0), nbu_rx_int, priority) |
| #if DT_INST_IRQ_HAS_NAME(0, wakeup_int) |
| #define NBU_WAKE_UP_IRQ_N DT_IRQ_BY_NAME(DT_DRV_INST(0), wakeup_int, irq) |
| #define NBU_WAKE_UP_IRQ_P DT_IRQ_BY_NAME(DT_DRV_INST(0), wakeup_int, priority) |
| #endif |
| |
| /* -------------------------------------------------------------------------- */ |
| /* Private prototypes */ |
| /* -------------------------------------------------------------------------- */ |
| extern int32_t nbu_handler(void); |
| extern int32_t nbu_wakeup_done_handler(void); |
| |
| /* -------------------------------------------------------------------------- */ |
| /* Public function */ |
| /* -------------------------------------------------------------------------- */ |
| |
| void nxp_nbu_init(void) |
| { |
| #if defined(CONFIG_BT) || defined(CONFIG_IEEE802154) |
| /* NBU interface Interrupt */ |
| IRQ_CONNECT(NBU_RX_IRQ_N, NBU_RX_IRQ_P, nbu_handler, 0, 0); |
| irq_enable(NBU_RX_IRQ_N); |
| |
| #if DT_INST_IRQ_HAS_NAME(0, wakeup_int) |
| /* Wake up done interrupt */ |
| IRQ_CONNECT(NBU_WAKE_UP_IRQ_N, NBU_WAKE_UP_IRQ_P, nbu_wakeup_done_handler, 0, 0); |
| irq_enable(NBU_WAKE_UP_IRQ_N); |
| #endif |
| #if (DT_INST_PROP(0, wakeup_source)) && CONFIG_PM |
| EnableDeepSleepIRQ(NBU_RX_IRQ_N); |
| #endif |
| |
| #endif |
| } |