25static const char*
s_tag =
"ICU";
31typedef enum : uint32_t {
52 if (irqcr !=
nullptr) {
83 if (irqcr ==
nullptr) {
90 uint8_t val = (uint8_t)(irqmd | fclk);
107 if (irqcr ==
nullptr) {
123 *nmier = (*nmier | mask);
131 *nmier = (*nmier & ~mask);
static const char * s_tag
Logging / check tag.
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Error Code Definitions for ra8-firmware.
@ k_ra8_err_invalid_arg
Invalid function argument.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
ra8_err_t ra8_icu_nmi_status(uint32_t *out_status)
Read the current NMISR value.
ra8_err_t ra8_icu_init(void)
Reset every ICU-owned register to its post-reset state.
ra8_err_t ra8_icu_nmi_enable(uint32_t mask)
Enable one or more NMI sources by OR'ing into NMIER.
ra8_err_t ra8_icu_nmi_clear(uint32_t mask)
Clear pending NMI status flags via NMICLR (HUM 14.2.15 p 544).
ra8_err_t ra8_icu_nmi_disable(uint32_t mask)
Disable NMI sources by clearing bits in NMIER.
ra8_icu_clear_val_t
Magic values used during ra8_icu_init.
@ k_ra8_icu_wupen_clear
RA8 icu wupen clear.
@ k_ra8_icu_nmiclr_all
RA8 icu nmiclr all.
ra8_err_t ra8_icu_read_irqcr(uint8_t irq_num, uint8_t *out_val)
Read the raw 8-bit IRQCRi value.
ra8_err_t ra8_icu_configure_irq_pin(uint8_t irq_num, const ra8_icu_irq_cfg_t *cfg)
Programme one IRQCRi register.
Interrupt Control Unit driver (IRQ pins, NMI).
Interrupt Control Unit (ICU) register layout for the Renesas RA8D2.
static volatile uint32_t * ra8_icu_wupen0(void)
Get pointer to the 32-bit WUPEN0 register.
@ k_ra8_icu_num_irqs
IRQ0..IRQ31, RA8D2 has 32 IRQ channels.
@ k_ra8_icu_irqcr_bit_fclksel
FCLKSEL[1:0] at bits 5..4.
@ k_ra8_icu_irqcr_mask_irqmd
IRQMD[1:0] bits 1..0.
@ k_ra8_icu_irqcr_mask_flten
FLTEN bit 7.
@ k_ra8_icu_irqcr_mask_fclksel
FCLKSEL[1:0] bits 5..4.
static volatile uint32_t * ra8_icu_nmisr(void)
Get pointer to the 32-bit NMISR register.
static volatile uint8_t * ra8_icu_irqcr(uint8_t irq_num)
Get pointer to the IRQCRi register for IRQ channel irq_num.
static volatile uint32_t * ra8_icu_wupen1(void)
Get pointer to the 32-bit WUPEN1 register.
static volatile uint32_t * ra8_icu_nmiclr(void)
Get pointer to the 32-bit NMICLR register.
static volatile uint32_t * ra8_icu_nmier(void)
Get pointer to the 32-bit NMIER register.
Lightweight Logging Interface for ra8-firmware.
#define ra8_log_info_val(tag, message, value)
RA8 log info val.
#define ra8_log_info(tag, message)
RA8 log info.
One external-IRQ-pin configuration descriptor.
bool filter_en
True = enable digital filter.
ra8_icu_fclksel_t filter_div
Filter sampling clock divider.
ra8_icu_irqmd_t sense
Edge / level detection mode.