ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_lvd_regs.h
Go to the documentation of this file.
1
39
40#pragma once
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45
46#include <stdint.h>
47
65typedef enum : uintptr_t {
66 k_ra8_lvd_sysc_base_addr = 0x4001E000UL,
69
102typedef enum : uintptr_t {
103 /* PVD1 -- m series. */
104 k_ra8_lvd_pvd1_cr1_off = 0x4001E0E0UL,
105 k_ra8_lvd_pvd1_sr_off = 0x4001E0E1UL,
107 k_ra8_lvd_pvd1_cr0_off = 0x4001EA70UL,
108 k_ra8_lvd_pvd1_fcr_off = 0x4001EB20UL,
109 /* PVD2 -- m series. */
110 k_ra8_lvd_pvd2_cr1_off = 0x4001E0E2UL,
111 k_ra8_lvd_pvd2_sr_off = 0x4001E0E3UL,
113 k_ra8_lvd_pvd2_cr0_off = 0x4001EA74UL,
114 k_ra8_lvd_pvd2_fcr_off = 0x4001EB24UL,
115 /* PVD4 -- n series (no CR1, no SR). */
117 k_ra8_lvd_pvd4_cr0_off = 0x4001EA7CUL,
118 k_ra8_lvd_pvd4_fcr_off = 0x4001EB2CUL,
119 /* PVD5 -- n series (no CR1, no SR). */
121 k_ra8_lvd_pvd5_cr0_off = 0x4001EA80UL,
122 k_ra8_lvd_pvd5_fcr_off = 0x4001EB30UL,
123 /* Lock + security registers. */
124 k_ra8_lvd_pvdlr_off = 0x4001EB34UL,
125 k_ra8_lvd_pvdsar_off = 0x400083CCUL,
128
143
174
182typedef enum : uint8_t {
185
201
213typedef enum : uint8_t {
217
226typedef enum : uint8_t {
229
246
257typedef enum : uint32_t {
262
281
291typedef enum : uint8_t {
294
314static inline volatile uint8_t* ra8_lvd_reg8(ra8_lvd_off_t off)
315{
316 return (volatile uint8_t*)(uintptr_t)off;
317}
318
336static inline volatile uint32_t* ra8_lvd_reg32(ra8_lvd_off_t off)
337{
338 return (volatile uint32_t*)(uintptr_t)off;
339}
340
341#ifdef __cplusplus
342}
343#endif
ra8_lvd_sr_mask_t
Bit masks for PVDmSR (m channels only).
@ k_ra8_lvd_sr_mask_det
DET latched-crossing flag.
@ k_ra8_lvd_sr_mask_mon
MON live above-threshold flag.
ra8_lvd_pvdlr_t
PVDLR (Voltage Monitor Lock Register) field constants.
@ k_ra8_lvd_pvdlr_value_unlock
Write 0 to release lock.
@ k_ra8_lvd_pvdlr_mask_lock
LOCK bit position.
@ k_ra8_lvd_pvdlr_value_relock
Any nonzero re-locks forever.
ra8_lvd_filter_const_t
Constants used by ra8_lvd_filter_delay_us.
@ k_ra8_lvd_filter_extra
"+3" LOCO cycles in HUM formula.
@ k_ra8_lvd_us_per_sec
Microseconds per second.
@ k_ra8_lvd_filter_factor
"2s" multiplier in HUM formula.
@ k_ra8_lvd_loco_hz_default
Nominal RA8D2 LOCO frequency.
ra8_lvd_cr0_mask_t
Bit masks and shifts for PVDmCR0 / PVDnCR0.
@ k_ra8_lvd_cr0_mask_re
RE (n) – reset-only enable.
@ k_ra8_lvd_cr0_mask_rn
RN reset-negate timing (m).
@ k_ra8_lvd_cr0_mask_n_bit6
Reserved bit6 – write-1 (n).
@ k_ra8_lvd_cr0_mask_cmpe
CMPE comparator-output enable.
@ k_ra8_lvd_cr0_mask_ri
RI reset-on-cross select (m).
@ k_ra8_lvd_cr0_mask_rie
RIE (m) – IRQ/reset enable.
@ k_ra8_lvd_cr0_mask_bit3
Reserved bit3 – write-1 (m).
@ k_ra8_lvd_cr0_mask_dfdis
DFDIS digital-filter disable.
@ k_ra8_lvd_cr0_mask_fsamp
FSAMP[1:0] divider field.
ra8_lvd_cr1_mask_t
Bit masks for PVDmCR1 (m channels only).
@ k_ra8_lvd_cr1_mask_irqsel
IRQSEL maskable / NMI selector.
@ k_ra8_lvd_cr1_mask_idtsel
IDTSEL[1:0] edge-select field.
ra8_lvd_pvdsar_mask_t
PVDSAR (PVD Security Attribution Register) bit masks.
@ k_ra8_lvd_pvdsar_mask_all
Both PVD1 + PVD2 NS.
@ k_ra8_lvd_pvdsar_mask_nonsec1
NONSEC1: PVD2 -> NS.
@ k_ra8_lvd_pvdsar_mask_nonsec0
NONSEC0: PVD1 -> NS.
static volatile uint8_t * ra8_lvd_reg8(ra8_lvd_off_t off)
Get a volatile uint8_t* to a PVD 8-bit register.
static volatile uint32_t * ra8_lvd_reg32(ra8_lvd_off_t off)
Get a volatile uint32_t* to a PVD 32-bit register.
ra8_lvd_misc_const_t
Miscellaneous PVD constants.
@ k_ra8_lvd_nmi_channel_count
PVD1 + PVD2 (m channels).
ra8_lvd_off_t
Absolute addresses of every PVD-related register on the RA8D2.
@ k_ra8_lvd_pvd5_cmpcr_off
PVD5CMPCR.
@ k_ra8_lvd_pvd1_cr1_off
PVD1CR1.
@ k_ra8_lvd_pvd1_fcr_off
PVD1FCR.
@ k_ra8_lvd_pvd1_sr_off
PVD1SR.
@ k_ra8_lvd_pvd5_fcr_off
PVD5FCR.
@ k_ra8_lvd_pvd2_cr1_off
PVD2CR1.
@ k_ra8_lvd_pvd1_cr0_off
PVD1CR0.
@ k_ra8_lvd_pvd4_fcr_off
PVD4FCR.
@ k_ra8_lvd_pvd5_cr0_off
PVD5CR0.
@ k_ra8_lvd_pvdlr_off
PVDLR.
@ k_ra8_lvd_pvd2_cmpcr_off
PVD2CMPCR.
@ k_ra8_lvd_pvd1_cmpcr_off
PVD1CMPCR.
@ k_ra8_lvd_pvd2_sr_off
PVD2SR.
@ k_ra8_lvd_pvd2_cr0_off
PVD2CR0.
@ k_ra8_lvd_pvdsar_off
PVDSAR.
@ k_ra8_lvd_pvd2_fcr_off
PVD2FCR.
@ k_ra8_lvd_pvd4_cmpcr_off
PVD4CMPCR.
@ k_ra8_lvd_pvd4_cr0_off
PVD4CR0.
ra8_lvd_cmpcr_mask_t
Bit masks for PVDmCMPCR / PVDnCMPCR.
@ k_ra8_lvd_cmpcr_mask_pvdlvl
PVDLVL[4:0] threshold field.
@ k_ra8_lvd_cmpcr_mask_pvde
PVDE detector enable.
ra8_lvd_fcr_mask_t
Bit mask for PVDmFCR / PVDnFCR.
@ k_ra8_lvd_fcr_mask_rhsel
RHSEL hysteresis-band selector.
ra8_lvd_base_addr_t
Memory-mapped base addresses backing the PVD register window.
@ k_ra8_lvd_cpscu_base_addr
R_CPSCU base.
@ k_ra8_lvd_sysc_base_addr
R_SYSTEM (SYSC) base.
ra8_lvd_cr0_shift_t
Bit shifts for PVDmCR0 / PVDnCR0 multi-bit fields.
@ k_ra8_lvd_cr0_shift_fsamp
FSAMP[1:0] starts at bit 4.