26static const char*
s_tag =
"POEG";
43typedef enum : uint32_t {
275 const uint32_t current = reg->
POEGG;
407 if (reg !=
nullptr) {
static const char * s_tag
Logging / check tag.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_ISR_SAFE
The function is callable from interrupt context.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_RETURN_ON_ERROR(err, tag, message)
Early return on error, propagating the code upward.
#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.
Lightweight Logging Interface for ra8-firmware.
#define ra8_log_info_val(tag, message, value)
RA8 log info val.
Ref-counted Module Stop Control wrapper for the RA8D2.
ra8_err_t ra8_mstp_enable(ra8_mstp_t id)
Reference-counted "ungate this peripheral" request.
ra8_err_t ra8_mstp_disable(ra8_mstp_t id)
Reference-counted "gate this peripheral" request.
Module Stop Control (MSTP) register layout for the Renesas RA8D2.
ra8_mstp_t
Packed (reg << 8) | bit module-stop identifier.
@ k_ra8_mstp_poeg_c
MSTPD12 POEG group C.
@ k_ra8_mstp_poeg_a
MSTPD14 POEG group A.
@ k_ra8_mstp_poeg_d
MSTPD11 POEG group D.
@ k_ra8_mstp_poeg_b
MSTPD13 POEG group B.
ra8_err_t ra8_poeg_trigger_stop(uint8_t group)
Manually fire the software-stop trigger (POEGG.SSF = 1).
ra8_err_t ra8_poeg_exit_stop(uint8_t group)
Re-enable the MSTP gate for one POEG group after stop.
ra8_err_t ra8_poeg_get_status(uint8_t group, uint32_t *out_mask)
Read the latched POEGG status bits.
ra8_err_t ra8_poeg_init(uint8_t group, const ra8_poeg_cfg_t *cfg)
Bring up one POEG group with the given configuration.
void ra8_poeg_dispatch(uint8_t group)
Snapshot POEGG status and fan out the per-group callback.
static uint32_t internal_cfg_to_poegg(const ra8_poeg_cfg_t *cfg)
Translate a public ra8_poeg_cfg_t into a POEGG bitfield.
ra8_err_t ra8_poeg_deinit(uint8_t group)
Tear down a POEG group and drop its MSTP reference.
ra8_poeg_bits_t
POEGG status/control bit positions and combined masks.
@ k_ra8_poeg_status_all
RA8 poeg status all.
ra8_err_t ra8_poeg_attach_handler(uint8_t group, ra8_poeg_event_fn_t fn, void *ctx)
Register the per-group ISR callback (NULL detaches).
ra8_err_t ra8_poeg_clear_status(uint8_t group, uint32_t mask)
Acknowledge selected POEGG status bits via write-0-to-clear.
ra8_err_t ra8_poeg_enter_stop(uint8_t group)
Drop the MSTP reference for one POEG group (low-power gate).
static const ra8_mstp_t s_poeg_mstp_table[k_ra8_poeg_group_count]
Per-group MSTP id lookup.
static ra8_poeg_state_t s_poeg_state[k_ra8_poeg_group_count]
Port Output Enable for GPT (POEG) driver.
void(* ra8_poeg_event_fn_t)(void *ctx, uint32_t status_mask)
POEG IRQ callback.
@ k_ra8_poeg_en_inv
POEGG.INV input invert.
@ k_ra8_poeg_en_iocen
POEGG.IOCE output short.
@ k_ra8_poeg_en_osten
POEGG.OSTPE osc stop.
@ k_ra8_poeg_en_pide
POEGG.PIDE input detect.
@ k_ra8_poeg_status_ovrf
POEGG.OSTPF Osc Stop.
@ k_ra8_poeg_status_st
POEGG.ST state.
@ k_ra8_poeg_status_ssf
POEGG.SSF Software.
@ k_ra8_poeg_status_pidf
POEGG.PIDF Port Input.
@ k_ra8_poeg_status_iocf
POEGG.IOCF Output Short.
Port Output Enable for GPT (POEG) register layout for the RA8D2.
@ k_ra8_poeg_group_count
RA8 poeg group count.
static volatile r_poeg_regs_t * ra8_poeg(uint8_t group)
Get pointer to POEG group N (0..3).
volatile uint32_t POEGG
+0x00 POEG Group setting + status.
Configuration descriptor for ra8_poeg_init.
bool enable_ioc
True -> enable output short detect.
bool enable_pin
True -> enable external PIDE input.
bool invert_input
True -> invert PIDE input polarity.
bool enable_osc_stop
True -> enable osc stop detect.
ra8_poeg_event_fn_t fn
Fn.