125typedef enum : uint8_t {
146typedef enum : uint8_t {
162typedef enum : uint8_t {
181typedef enum : uint8_t {
200typedef enum : uint8_t {
217typedef enum : uint8_t {
235typedef enum : uint8_t {
247typedef enum : uint16_t {
263typedef enum : uint8_t {
278typedef enum : uint32_t {
650 uint32_t* out_pclkb_cycles);
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
ra8_err_t ra8_wdt_install_nmi(void)
Enable the WDT bit in NMIER so the NMI line fires on underflow.
ra8_err_t ra8_wdt_uninstall_nmi(void)
Disable the WDT bit in NMIER (counterpart to ra8_wdt_install_nmi).
void ra8_wdt_refresh_deferred(void)
Refresh the software WDT counter (WDT0).
ra8_err_t ra8_wdt_ofs_reader_set(ra8_wdt_ofs_reader_fn_t reader)
Override the OFSm reader hook used by ra8_wdt_ofs_get.
ra8_wdt_timeout_sel_t
Legal TOPS[1:0] encodings for WDTCR.
@ k_ra8_wdt_timeout_16384
16384 cycles.
@ k_ra8_wdt_timeout_1024
1024 cycles.
@ k_ra8_wdt_timeout_8192
8192 cycles.
@ k_ra8_wdt_timeout_4096
4096 cycles.
ra8_wdt_clock_div_t
Legal CKS[3:0] encodings for WDTCR.
@ k_ra8_wdt_clkdiv_512
PCLKB / 512.
@ k_ra8_wdt_clkdiv_8192
PCLKB / 8192.
@ k_ra8_wdt_clkdiv_4
PCLKB / 4.
@ k_ra8_wdt_clkdiv_2048
PCLKB / 2048.
@ k_ra8_wdt_clkdiv_64
PCLKB / 64.
@ k_ra8_wdt_clkdiv_128
PCLKB / 128.
ra8_err_t ra8_wdt_refresh_for(ra8_wdt_instance_t which)
Refresh a specific WDT instance.
ra8_err_t ra8_wdt_exit_stop(void)
Disable counter halt on Sleep entry.
ra8_err_t ra8_wdt_timeout_cycles_get(ra8_wdt_timeout_sel_t sel, uint16_t *out_cycles)
Decode a ra8_wdt_timeout_sel_t into its cycle count.
ra8_err_t(* ra8_wdt_ofs_reader_fn_t)(uintptr_t ofs_addr, uint32_t *out_word)
Hook used to fetch one OFSm option-setting word.
ra8_wdt_ofs_strt_t
OFSm.WDTnSTRT encoding – auto vs register start mode.
@ k_ra8_wdt_ofs_strt_auto
Auto-start (OFSm-driven).
@ k_ra8_wdt_ofs_strt_register
Register-start (runtime config).
uint8_t ra8_wdt_subscriber_count(void)
Number of currently-installed subscribers.
ra8_err_t ra8_wdt_init(const ra8_wdt_cfg_t *cfg)
Initialise the WDT in register-start mode.
ra8_wdt_window_start_t
Legal RPSS[1:0] encodings (refresh-permitted window start).
@ k_ra8_wdt_window_start_100
100 % (no upper bound).
@ k_ra8_wdt_window_start_75
75 %.
@ k_ra8_wdt_window_start_25
25 %.
@ k_ra8_wdt_window_start_50
50 %.
ra8_wdt_clear_timeout_t
Bounded retry budget for ra8_wdt_clear_status_blocking.
@ k_ra8_wdt_clear_max_polls
16384 reads – safely > 8193.
ra8_err_t ra8_wdt_unsubscribe(uint8_t slot)
Remove a previously-registered subscriber.
ra8_err_t ra8_wdt_subscribe(ra8_wdt_event_fn_t fn, void *ctx, uint8_t *out_slot)
Add a hot-pluggable subscriber to the WDT NMI dispatch list.
ra8_err_t ra8_wdt_get_status(uint16_t *out_mask)
Read the WDTSR status flag bits.
ra8_wdt_reset_ctrl_t
WDTRCR.RSTIRQS encoding – reset vs NMI on expiry.
@ k_ra8_wdt_on_expiry_nmi
RSTIRQS=0 – route to NMI / IRQ.
@ k_ra8_wdt_on_expiry_reset
RSTIRQS=1 – internal reset.
ra8_err_t ra8_wdt_ofs_get(ra8_wdt_instance_t which, ra8_wdt_ofs_decoded_t *out)
Decode an OFSm option-setting word into ra8_wdt_cfg_t.
ra8_wdt_status_mask_t
WDTSR top-bit status flags.
@ k_ra8_wdt_status_underflow
UNDFF (bit 14).
@ k_ra8_wdt_status_none
No flag set.
@ k_ra8_wdt_status_refresh
REFEF (bit 15).
ra8_wdt_subs_count_t
Maximum number of hot-pluggable subscribers per WDT instance.
@ k_ra8_wdt_max_subs
Max simultaneous subscribers.
ra8_err_t ra8_wdt_clear_status(void)
Clear the WDTSR underflow / refresh-error flags.
ra8_wdt_stop_ctrl_t
WDTCSTPR.SLCSTP encoding – counter behaviour in Sleep.
@ k_ra8_wdt_sleep_keep_count
SLCSTP=0 – counter runs in Sleep.
@ k_ra8_wdt_sleep_stop_count
SLCSTP=1 – counter halts in Sleep.
ra8_err_t ra8_wdt_deinit(void)
Quiesce the driver into a Sleep-stop posture.
ra8_err_t ra8_wdt_pclkb_divisor(ra8_wdt_clock_div_t div, uint16_t *out_divisor)
Decode a ra8_wdt_clock_div_t into its numeric divisor.
ra8_err_t ra8_wdt_total_pclkb_cycles(ra8_wdt_timeout_sel_t sel, ra8_wdt_clock_div_t div, uint32_t *out_pclkb_cycles)
Compute the effective timeout in PCLKB cycles.
ra8_err_t ra8_wdt_get_counter(uint16_t *out_count)
Read the live CNTVAL[13:0] down-counter value.
ra8_err_t ra8_wdt_enter_stop(void)
Enable counter halt on Sleep entry.
void(* ra8_wdt_event_fn_t)(void *ctx, uint16_t status_mask)
WDT NMI / underflow event callback.
ra8_err_t ra8_wdt_attach_handler(ra8_wdt_event_fn_t fn, void *ctx)
Register a callback invoked from the WDT NMI / underflow ISR.
void ra8_wdt_dispatch(void)
Dispatch a WDT event – snapshot WDTSR + fan-out to subscribers.
ra8_err_t ra8_wdt_clear_status_blocking(uint16_t mask)
Clear specific WDTSR flag bits and busy-wait until they read 0.
ra8_wdt_window_end_t
Legal RPES[1:0] encodings (refresh-permitted window end).
@ k_ra8_wdt_window_end_50
50 %.
@ k_ra8_wdt_window_end_0
0 % (no lower bound).
@ k_ra8_wdt_window_end_75
75 %.
@ k_ra8_wdt_window_end_25
25 %.
Watchdog Timer (WDT) register layout for the RA8D2.
@ k_ra8_wdt_sr_refef
REFEF bit 15.
@ k_ra8_wdt_sr_undff
UNDFF bit 14.
ra8_wdt_instance_t
Hardware instance selector used by per-instance helpers.
Register-start-mode configuration block.
ra8_wdt_window_start_t window_start
WDTCR.RPSS[1:0] selection.
ra8_wdt_timeout_sel_t timeout
WDTCR.TOPS[1:0] selection.
ra8_wdt_stop_ctrl_t stop_in_sleep
WDTCSTPR.SLCSTP halt-on-Sleep.
ra8_wdt_clock_div_t clock_div
WDTCR.CKS[3:0] selection.
ra8_wdt_reset_ctrl_t on_expiry
WDTRCR.RSTIRQS reset vs IRQ.
ra8_wdt_window_end_t window_end
WDTCR.RPES[1:0] selection.
Decoded view of an OFSm option-setting word.
ra8_wdt_ofs_strt_t start_mode
OFSm.WDTnSTRT (auto vs register start).
ra8_wdt_cfg_t cfg
Decoded period / divider / window / etc.
bool auto_start
Convenience flag = (start_mode == auto).