ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_system_regs.h
Go to the documentation of this file.
1
44
45#pragma once
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51#include <stdint.h>
52
53/* =============================================================================
54 * Base addresses
55 * =============================================================================
56 */
57
58typedef enum : uintptr_t {
59 k_ra8_system_base_addr = 0x4001E000UL,
61
62/* =============================================================================
63 * Register offsets (within the SYSTEM block)
64 * =============================================================================
65 */
66
105
121typedef enum : uint32_t {
122 k_ra8_vscr_bit_vscm = (1UL << 0U),
125
134typedef enum : uint8_t {
137
149typedef enum : uint8_t {
152
170
181typedef enum : uint8_t {
184
200
201/* =============================================================================
202 * PRCR protection key and group masks
203 * =============================================================================
204 */
205
246
247/* =============================================================================
248 * Reset-cause bits (subset -- add as needed)
249 * =============================================================================
250 */
251
266
277
278/* =============================================================================
279 * Direct register accessors
280 * =============================================================================
281 *
282 * Rather than define a single bloated R_SYSTEM struct (3456 bytes of
283 * bitfields), we expose a tiny set of typed accessors that each return
284 * a pointer to one register. The caller reads / writes whole 8/16/32-bit
285 * values and masks bits using the named constants above. This is
286 * exactly how the rx72n project handled its SYSTEM block and keeps the
287 * header under 200 lines.
288 */
289
291static inline volatile uint32_t* ra8_sys_vscr(void)
292{
293 return (volatile uint32_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_vscr);
294}
295
297static inline volatile uint32_t* ra8_sys_sckdivcr(void)
298{
299 return (volatile uint32_t*)((uintptr_t)k_ra8_system_base_addr +
300 (uintptr_t)k_ra8_sys_off_sckdivcr);
301}
302
304static inline volatile uint8_t* ra8_sys_scickdivcr(void)
305{
306 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
307 (uintptr_t)k_ra8_sys_off_scickdivcr);
308}
309
311static inline volatile uint8_t* ra8_sys_scickcr(void)
312{
313 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_scickcr);
314}
315
317static inline volatile uint8_t* ra8_sys_sckscr(void)
318{
319 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_sckscr);
320}
321
323static inline volatile uint8_t* ra8_sys_hococr(void)
324{
325 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_hococr);
326}
327
329static inline volatile uint8_t* ra8_sys_sosccr(void)
330{
331 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_sosccr);
332}
333
335static inline volatile uint8_t* ra8_sys_somcr(void)
336{
337 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_somcr);
338}
339
341static inline volatile uint8_t* ra8_sys_lococr(void)
342{
343 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_lococr);
344}
345
347static inline volatile uint8_t* ra8_sys_moscwtcr(void)
348{
349 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_moscwtcr);
350}
351
353static inline volatile uint32_t* ra8_sys_pllccr(void)
354{
355 return (volatile uint32_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_pllccr);
356}
357
359static inline volatile uint16_t* ra8_sys_pllccr2(void)
360{
361 return (volatile uint16_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_pllccr2);
362}
363
389static inline volatile uint32_t* ra8_sys_pll2ccr(void)
390{
391 return (volatile uint32_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_pll2ccr);
392}
393
410static inline volatile uint8_t* ra8_sys_pll2cr(void)
411{
412 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_pll2cr);
413}
414
436static inline volatile uint16_t* ra8_sys_pll2ccr2(void)
437{
438 return (volatile uint16_t*)((uintptr_t)k_ra8_system_base_addr +
439 (uintptr_t)k_ra8_sys_off_pll2ccr2);
440}
441
443static inline volatile uint8_t* ra8_sys_oscsf(void)
444{
445 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_oscsf);
446}
447
449static inline volatile uint8_t* ra8_sys_pllcr(void)
450{
451 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_pllcr);
452}
453
455static inline volatile uint16_t* ra8_sys_sckdivcr2(void)
456{
457 return (volatile uint16_t*)((uintptr_t)k_ra8_system_base_addr +
458 (uintptr_t)k_ra8_sys_off_sckdivcr2);
459}
460
462static inline volatile uint32_t* ra8_sys_rstsr1(void)
463{
464 return (volatile uint32_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_rstsr1);
465}
466
468static inline volatile uint16_t* ra8_sys_prcr(void)
469{
470 return (volatile uint16_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_prcr);
471}
472
474static inline volatile uint8_t* ra8_sys_rstsr0(void)
475{
476 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_rstsr0);
477}
478
480static inline volatile uint8_t* ra8_sys_rstsr2(void)
481{
482 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_rstsr2);
483}
484
500
515
517static inline volatile uint8_t* ra8_sys_usbckdivcr(void)
518{
519 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
520 (uintptr_t)k_ra8_sys_off_usbckdivcr);
521}
522
524static inline volatile uint8_t* ra8_sys_usbckcr(void)
525{
526 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_usbckcr);
527}
528
530static inline volatile uint8_t* ra8_sys_usb60ckcr(void)
531{
532 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
533 (uintptr_t)k_ra8_sys_off_usb60ckcr);
534}
535
537static inline volatile uint8_t* ra8_sys_usb60ckdivcr(void)
538{
539 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
540 (uintptr_t)k_ra8_sys_off_usb60ckdivcr);
541}
542
549static inline volatile uint8_t* ra8_sys_canfdckcr(void)
550{
551 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
552 (uintptr_t)k_ra8_sys_off_canfdckcr);
553}
554
560static inline volatile uint8_t* ra8_sys_canfdckdivcr(void)
561{
562 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
563 (uintptr_t)k_ra8_sys_off_canfdckdivcr);
564}
565
576static inline volatile uint8_t* ra8_sys_octackcr(void)
577{
578 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_octackcr);
579}
580
586static inline volatile uint8_t* ra8_sys_octackdivcr(void)
587{
588 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
589 (uintptr_t)k_ra8_sys_off_octackdivcr);
590}
591
614
625
640static inline volatile uint8_t* ra8_sys_eswckcr(void)
641{
642 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_eswckcr);
643}
644
646static inline volatile uint8_t* ra8_sys_eswckdivcr(void)
647{
648 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
649 (uintptr_t)k_ra8_sys_off_eswckdivcr);
650}
651
664static inline volatile uint8_t* ra8_sys_eswpckcr(void)
665{
666 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr + (uintptr_t)k_ra8_sys_off_eswpckcr);
667}
668
670static inline volatile uint8_t* ra8_sys_eswpckdivcr(void)
671{
672 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
673 (uintptr_t)k_ra8_sys_off_eswpckdivcr);
674}
675
696
698static inline volatile uint8_t* ra8_sys_pdctreswm(void)
699{
700 return (volatile uint8_t*)((uintptr_t)k_ra8_system_base_addr +
701 (uintptr_t)k_ra8_sys_off_pdctreswm);
702}
703
704/* =============================================================================
705 * PRCR unlock helpers
706 * =============================================================================
707 */
708
725static inline void ra8_sys_prcr_unlock_cgc(void)
726{
728}
729
741static inline void ra8_sys_prcr_lock_all(void)
742{
744}
745
746#ifdef __cplusplus
747}
748#endif
static volatile uint8_t * ra8_sys_somcr(void)
Get pointer to the 8-bit SOMCR register (sub-clock oscillator mode).
static volatile uint8_t * ra8_sys_scickcr(void)
Get pointer to the 8-bit SCICKCR register (SCICLK source select).
static volatile uint8_t * ra8_sys_usbckcr(void)
Get pointer to the 8-bit USBCKCR (USB-FS source select).
static void ra8_sys_prcr_unlock_cgc(void)
Unlock the CGC + LVD protection group so CGC registers can be written.
ra8_prcr_t
Values to write to PRCR to unlock / lock protection groups.
@ k_ra8_prcr_unlock_rst
RA8 prcr unlock rst.
@ k_ra8_prcr_grp4_sar
PRC4 @ bit 4: security/privilege attribution.
@ k_ra8_prcr_grp0_cgc
PRC0 @ bit 0: clock generation circuit.
@ k_ra8_prcr_grp5_rst
PRC5 @ bit 5: reset control.
@ k_ra8_prcr_unlock_sar
RA8 prcr unlock sar.
@ k_ra8_prcr_unlock_cgc
RA8 prcr unlock cgc.
@ k_ra8_prcr_unlock_pvd
RA8 prcr unlock pvd.
@ k_ra8_prcr_key
Password in upper byte.
@ k_ra8_prcr_lock_all
RA8 prcr lock all.
@ k_ra8_prcr_unlock_lpm
RA8 prcr unlock lpm.
@ k_ra8_prcr_grp3_pvd
PRC3 @ bit 3: PVD + VBATTMNSELR.
@ k_ra8_prcr_grp1_lpm
PRC1 @ bit 1: low-power modes + VBATT backup.
ra8_system_offset_t
@ k_ra8_sys_off_eswckdivcr
ESWCKDIVCR (8-bit) – ESWM module clock div.
@ k_ra8_sys_off_rstsr0
RSTSR0 (8-bit).
@ k_ra8_sys_off_pllcr
PLLCR (8-bit).
@ k_ra8_sys_off_eswpckcr
ESWPCKCR (8-bit) – ESWM-PHY clock source.
@ k_ra8_sys_off_vscr
VSCR voltage scaling control (32-bit).
@ k_ra8_sys_off_moscr
MOSCCR (8-bit).
@ k_ra8_sys_off_scickdivcr
SCICKDIVCR (8-bit).
@ k_ra8_sys_off_canfdckdivcr
CANFDCKDIVCR (8-bit) – HUM Ch 9.2.41 p 363.
@ k_ra8_sys_off_usb60ckcr
USB60CKCR (8-bit) – USBHS 60MHz src.
@ k_ra8_sys_off_rstsr2
RSTSR2 (8-bit).
@ k_ra8_sys_off_sosccr
SOSCCR (8-bit) – HUM Ch 9.2.14 p 339.
@ k_ra8_sys_off_pllccr
PLLCCR (32-bit).
@ k_ra8_sys_off_eswpckdivcr
ESWPCKDIVCR (8-bit) – ESWM-PHY clock div.
@ k_ra8_sys_off_usbckcr
USBCKCR (8-bit) – USB-FS clock src.
@ k_ra8_sys_off_canfdckcr
CANFDCKCR (8-bit) – HUM Ch 9.2.46 p 366.
@ k_ra8_sys_off_sckscr
SCKSCR (8-bit).
@ k_ra8_sys_off_usbckdivcr
USBCKDIVCR (8-bit) – USB-FS clock divider.
@ k_ra8_sys_off_pll2ccr
PLL2CCR – input/mul/source (32-bit, HUM Ch 9.2.9).
@ k_ra8_sys_off_moscwtcr
MOSCWTCR (8-bit).
@ k_ra8_sys_off_pdctreswm
PDCTRESWM (8-bit) – ESWM power-domain control.
@ k_ra8_sys_off_eswckcr
ESWCKCR (8-bit) – ESWM clock source.
@ k_ra8_sys_off_oscsf
OSCSF (8-bit).
@ k_ra8_sys_off_somcr
SOMCR (8-bit) – HUM Ch 9.2.29 p 351.
@ k_ra8_sys_off_usb60ckdivcr
USB60CKDIVCR (8-bit) – USBHS 60MHz divider.
@ k_ra8_sys_off_pllccr2
PLLCCR2 – PLL1 output dividers (16-bit).
@ k_ra8_sys_off_pll2ccr2
PLL2CCR2 – PLL2 output dividers (16-bit).
@ k_ra8_sys_off_scickcr
SCICKCR (8-bit).
@ k_ra8_sys_off_octackdivcr
OCTACKDIVCR (8-bit) – HUM Ch 9.2.40 p 357.
@ k_ra8_sys_off_prcr
PRCR (16-bit).
@ k_ra8_sys_off_pll2cr
PLL2CR – PLL2 stop control (8-bit).
@ k_ra8_sys_off_octackcr
OCTACKCR (8-bit) – HUM Ch 9.2.45 p 360.
@ k_ra8_sys_off_hococr
HOCOCR (8-bit).
@ k_ra8_sys_off_sckdivcr
SCKDIVCR (32-bit).
@ k_ra8_sys_off_rstsr1
RSTSR1 (32-bit).
@ k_ra8_sys_off_sckdivcr2
SCKDIVCR2 (16-bit).
@ k_ra8_sys_off_lococr
LOCOCR (8-bit) – HUM Ch 9.2.15 p 339.
static volatile uint8_t * ra8_sys_pllcr(void)
Get pointer to the 8-bit PLLCR register (PLL enable/stop).
static volatile uint32_t * ra8_sys_pll2ccr(void)
Get pointer to the 32-bit PLL2CCR register (PLL2 input/mul/source).
static volatile uint32_t * ra8_sys_vscr(void)
Get pointer to the 32-bit VSCR register (voltage scaling control).
ra8_rstsr2_bit_t
Reset Status Register 2 bit positions.
@ k_ra8_rstsr2_bit_iwdtrf
IWDT reset.
@ k_ra8_rstsr2_bit_swrf
Software reset.
@ k_ra8_rstsr2_bit_cwsf
Cold / warm start flag.
@ k_ra8_rstsr2_bit_wdtrf
WDT reset.
static volatile uint8_t * ra8_sys_octackcr(void)
Get pointer to the 8-bit OCTACKCR (Octal-SPI clock source select).
static volatile uint8_t * ra8_sys_octackdivcr(void)
Get pointer to the 8-bit OCTACKDIVCR (Octal-SPI clock divider).
static volatile uint16_t * ra8_sys_pll2ccr2(void)
Get pointer to the 16-bit PLL2CCR2 register (PLL2 output dividers).
static void ra8_sys_prcr_lock_all(void)
Re-lock every protection group (write password with all group bits clear).
ra8_oscsf_bit_t
Oscillation Stabilization Flag bit positions.
@ k_ra8_oscsf_bit_pll2sf
PLL2 stabilisation flag.
@ k_ra8_oscsf_bit_pll1sf
PLL1 stabilisation flag.
@ k_ra8_oscsf_bit_moscsf
Main oscillator stab flag.
@ k_ra8_oscsf_bit_hocosf
HOCO stabilisation flag.
static volatile uint8_t * ra8_sys_hococr(void)
Get pointer to the 8-bit HOCOCR register.
static volatile uint8_t * ra8_sys_pll2cr(void)
Get pointer to the 8-bit PLL2CR register (PLL2 stop control).
static volatile uint8_t * ra8_sys_canfdckcr(void)
Get pointer to the 8-bit CANFDCKCR (CANFD core clock source select).
static volatile uint8_t * ra8_sys_moscwtcr(void)
Get pointer to the 8-bit MOSCWTCR register.
static volatile uint16_t * ra8_sys_sckdivcr2(void)
Get pointer to the 16-bit SCKDIVCR2 register.
ra8_somcr_drv_t
SOMCR.SODRV[1:0] sub-clock drive-capability codes.
@ k_ra8_somcr_drv_standard
Standard drive (12.5 pF).
@ k_ra8_somcr_drv_lp1
Low-power mode 1 (9 pF).
@ k_ra8_somcr_drv_lp3
Low-power mode 3 (4 pF).
@ k_ra8_somcr_drv_lp2
Low-power mode 2 (7 pF).
static volatile uint8_t * ra8_sys_eswpckcr(void)
Get pointer to the 8-bit ESWPCKCR (Ethernet-PHY clock source).
static volatile uint8_t * ra8_sys_usbckdivcr(void)
Get pointer to the 8-bit USBCKDIVCR (USB clock divider).
static volatile uint8_t * ra8_sys_sosccr(void)
Get pointer to the 8-bit SOSCCR register (sub-clock oscillator stop).
static volatile uint8_t * ra8_sys_rstsr0(void)
Get pointer to the 8-bit RSTSR0 register.
static volatile uint16_t * ra8_sys_pllccr2(void)
Get pointer to the 16-bit PLLCCR2 register (PLL1 output dividers).
static volatile uint8_t * ra8_sys_lococr(void)
Get pointer to the 8-bit LOCOCR register (LOCO stop control).
static volatile uint8_t * ra8_sys_usb60ckdivcr(void)
Get pointer to the 8-bit USB60CKDIVCR (USBHS 60MHz divider).
static volatile uint8_t * ra8_sys_eswckcr(void)
Get pointer to the 8-bit ESWCKCR (Ethernet Switch / RMAC clock source).
static volatile uint8_t * ra8_sys_rstsr2(void)
Get pointer to the 8-bit RSTSR2 register.
static volatile uint8_t * ra8_sys_eswpckdivcr(void)
Get pointer to the 8-bit ESWPCKDIVCR (ESWPHYCLK divider; 4-bit CKDIV field).
ra8_lococr_bit_t
Bit mask in LOCOCR (Low-Speed On-Chip Oscillator Control Register).
@ k_ra8_lococr_lcstp_mask
LCSTP – 0 operates LOCO, 1 stops it.
ra8_sosccr_bit_t
Bit mask in SOSCCR (Sub-Clock Oscillator Control Register).
@ k_ra8_sosccr_sostp_mask
SOSTP – 0 operates SOSC, 1 stops it.
static volatile uint8_t * ra8_sys_pdctreswm(void)
Get pointer to the 8-bit PDCTRESWM (ESWM power-domain control).
ra8_eswcksel_t
ESWCKCR.CKSEL source codes (RA8D2 mapping).
@ k_ra8_eswcksel_pll1p
PLL1P (preferred for 125 MHz ESWCLK).
@ k_ra8_eswcksel_loco
LOCO.
@ k_ra8_eswcksel_pll2q
PLL2Q.
@ k_ra8_eswcksel_hoco
HOCO.
@ k_ra8_eswcksel_moco
MOCO.
@ k_ra8_eswcksel_main
Main XTAL.
@ k_ra8_eswcksel_pll1r
PLL1R.
@ k_ra8_eswcksel_pll1q
PLL1Q.
@ k_ra8_eswcksel_pll2r
PLL2R.
@ k_ra8_eswcksel_pll2p
PLL2P.
static volatile uint8_t * ra8_sys_oscsf(void)
Get pointer to the 8-bit OSCSF (oscillation stabilisation) register.
static volatile uint8_t * ra8_sys_usb60ckcr(void)
Get pointer to the 8-bit USB60CKCR (USBHS 60MHz source select).
ra8_system_addr_t
@ k_ra8_system_base_addr
R_SYSTEM.
ra8_usbcksel_t
USBCKCR.USBCKSEL source codes (RA8D2 mapping).
@ k_ra8_usbcksel_pll2q
PLL2Q.
@ k_ra8_usbcksel_pll1p
PLL1P.
@ k_ra8_usbcksel_main
Main XTAL.
@ k_ra8_usbcksel_pll2r
PLL2R.
@ k_ra8_usbcksel_pll2p
PLL2P.
@ k_ra8_usbcksel_hoco
HOCO.
@ k_ra8_usbcksel_pll1q
PLL1Q.
@ k_ra8_usbcksel_pll1r
PLL1R.
ra8_eswckcr_bit_t
Bit positions in ESWCKCR.
@ k_ra8_eswckcr_shift_sel
CKSEL field starts at bit 0.
@ k_ra8_eswckcr_mask_sel
CKSEL field is 4 bits wide.
@ k_ra8_eswckcr_bit_sreq
CKSREQ – request switch.
@ k_ra8_eswckcr_bit_srdy
CKSRDY – handshake ready.
static volatile uint8_t * ra8_sys_eswckdivcr(void)
Get pointer to the 8-bit ESWCKDIVCR (ESWCLK divider; 4-bit CKDIV field).
static volatile uint8_t * ra8_sys_sckscr(void)
Get pointer to the 8-bit SCKSCR register.
static volatile uint32_t * ra8_sys_rstsr1(void)
Get pointer to the 32-bit RSTSR1 register.
static volatile uint32_t * ra8_sys_sckdivcr(void)
Get pointer to the 32-bit SCKDIVCR register.
static volatile uint32_t * ra8_sys_pllccr(void)
Get pointer to the 32-bit PLLCCR register.
static volatile uint16_t * ra8_sys_prcr(void)
Get pointer to the 16-bit PRCR register.
static volatile uint8_t * ra8_sys_scickdivcr(void)
Get pointer to the 8-bit SCICKDIVCR register (SCICLK divider).
ra8_pdctreswm_bit_t
Bit positions in PDCTRESWM (ESWM power-domain control).
@ k_ra8_pdctr_bit_pdpgsf
Read-only: power-gating status flag.
@ k_ra8_pdctr_bit_pdcsf
Read-only: power-control status flag.
@ k_ra8_pdctr_bit_pdde
1 = power disabled, 0 = power enabled.
ra8_vscr_bit_t
Bit masks in VSCR (Voltage Scaling Control Register).
@ k_ra8_vscr_bit_vscm
VSCM bit mask (write 1 = not-high-V).
@ k_ra8_vscr_bit_vscmtsf
VSCMTSF transition-in-flight mask.
ra8_usbckcr_bit_t
USBCKCR / USB60CKCR bit positions (HUM Ch 9).
@ k_ra8_usbckcr_shift_sel
USBCKSEL field starts at bit 0.
@ k_ra8_usbckcr_mask_sel
USBCKSEL field is 4 bits wide.
@ k_ra8_usbckcr_bit_srdy
USBCKSRDY – handshake ready.
@ k_ra8_usbckcr_bit_sreq
USBCKSREQ – request switch.
static volatile uint8_t * ra8_sys_canfdckdivcr(void)
Get pointer to the 8-bit CANFDCKDIVCR (CANFD core clock divider).
ra8_rstsr0_bit_t
Reset Status Register 0 bit positions.
@ k_ra8_rstsr0_bit_lvd0
Voltage-monitor 0 reset.
@ k_ra8_rstsr0_bit_lvd1
Voltage-monitor 1 reset.
@ k_ra8_rstsr0_bit_porf
Power-on reset.
@ k_ra8_rstsr0_bit_lvd2
Voltage-monitor 2 reset.
ra8_moscr_bit_t
Bit masks in MOSCCR (Main Clock Oscillator Control Register).
@ k_ra8_moscr_mostp_mask
MOSTP – 0 starts XTAL, 1 stops it.