36static const char*
s_tag =
"DAC_B";
42typedef enum : uint8_t {
122 if (reg ==
nullptr) {
146 if (reg ==
nullptr) {
175 if (reg ==
nullptr) {
216 if (reg ==
nullptr) {
267 if (reg0 !=
nullptr) {
271 if (reg1 !=
nullptr) {
296 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.
ra8_err_t ra8_dac_b_set_output_enable(uint8_t channel, bool enable)
Toggle output-enable for one channel at runtime.
ra8_err_t ra8_dac_b_deinit(void)
Tear down the DAC_B peripheral.
ra8_err_t ra8_dac_b_init(void)
Legacy init – zero every DAC_B register + enable MSTP.
static void internal_disable_channel(uint8_t channel)
Stop a channel and put DACR0 in the FSP "open" baseline.
ra8_err_t ra8_dac_b_write(uint8_t channel, uint16_t value)
Programme a DAC channel with a 12-bit code.
ra8_err_t ra8_dac_b_init_configured(const ra8_dac_b_cfg_t *cfg)
Initialise DAC_B with a full config descriptor.
ra8_err_t ra8_dac_b_get_status(uint8_t *out_mask)
Read the DACR output-enable / DAE mask.
static ra8_dac_b_state_t s_dac_b_state
ra8_err_t ra8_dac_b_clear_status(void)
Clear DAE + DAOE bits (disable DAC outputs).
ra8_err_t ra8_dac_b_exit_stop(void)
Exit MSTP-gated stop.
void ra8_dac_b_dispatch_update(uint8_t channel)
Dispatch a DAC-update event – fire the registered callback.
ra8_err_t ra8_dac_b_set_vref(ra8_dac_b_vref_t vref)
Change the DAC voltage reference at runtime.
ra8_err_t ra8_dac_b_enter_stop(void)
Put DAC_B into MSTP-gated stop.
static void internal_start_channel(uint8_t channel)
Set DACEN=1 on a channel (FSP R_DAC_B_Start equivalent).
ra8_err_t ra8_dac_b_attach_handler(ra8_dac_b_update_fn_t fn, void *ctx)
Attach a DAC-update callback.
static void internal_apply_cfg(uint8_t channel, const ra8_dac_b_cfg_t *cfg)
Apply cfg to one DAC_B instance (FSP R_DAC_B_Open body).
ra8_dac_b_channel_t
Named channel indices.
@ k_ra8_dac_b_channel_0
RA8 DAC b channel 0.
@ k_ra8_dac_b_channel_1
RA8 DAC b channel 1.
static uint16_t internal_ra8_dac_b_clamp(uint16_t value)
Clamp a raw value to 12-bit range.
static void internal_stop_channel(uint8_t channel)
Clear DACEN on a channel (FSP R_DAC_B_Stop equivalent).
Full-featured 12-bit DAC_B driver.
ra8_dac_b_vref_t
VREFH operating-mode selection (DACR2.OFSSEL bit 8).
void(* ra8_dac_b_update_fn_t)(void *ctx, uint8_t channel)
DAC update (conversion done) event callback.
12-bit DAC_B register layout for the Renesas RA8D2
@ k_ra8_dacr1_bit_dpsel
DPSEL: data placement select.
static volatile r_dac_b_regs_t * ra8_dac_b(uint8_t instance)
Get pointer to DAC_B instance N (0 or 1).
@ k_ra8_dac_b_channel_count
Two independent DAC_B instances.
@ k_ra8_dac_b_max_value
12-bit full-scale count.
@ k_ra8_dacr2_bit_ofssel
OFSSEL: VREFH range select.
@ k_ra8_dacr0_mask_daoutdis
Mirror of FSP DAOUTDIS_Msk.
@ k_ra8_dacr0_mask_dacen
Mirror of FSP DACEN_Msk.
@ k_ra8_dacr2_mask_ofssel
Mirror of FSP OFSSEL_Msk.
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.
#define ra8_log_info(tag, message)
RA8 log info.
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.
@ k_ra8_mstp_dac12_0
MSTPD20 DAC12 ch 0.
@ k_ra8_mstp_dac12_1
MSTPD19 DAC12 ch 1.
Per-instance DAC_B register window.
volatile uint16_t DADR
+0x00 12-bit data value (low 12 bits).
volatile uint32_t DACR2
+0x0C Control 2 (OFSSEL bit 8).
volatile uint32_t DACR1
+0x08 Control 1 (DPSEL bit 16).
volatile uint32_t DACR0
+0x04 Control 0 (DACEN/DAE/DAOUTDIS).
Configuration descriptor for ra8_dac_b_init_configured.
ra8_dac_b_vref_t vref
VREFH range (DACR2.OFSSEL).
bool enable_channel1
Initial DACEN1 state.
ra8_dac_b_data_format_t data_format
Data placement (DACR1.DPSEL).
bool internal_output_enabled
Drive internal route (clears DAOUTDIS).
bool enable_channel0
Initial DACEN0 state.
Driver-wide runtime state.
ra8_dac_b_update_fn_t fn
Fn.