ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_acmphs_regs.h
Go to the documentation of this file.
1
29
30#pragma once
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36#include <stdint.h>
37
38#include "ra8_attributes.h"
39
44typedef enum : uintptr_t {
45 k_ra8_acmphs0_base_addr = 0x40236000UL,
47
57
73
87
100typedef struct {
101 volatile uint8_t CMPCTL;
102 volatile uint8_t _r0[3];
103 volatile uint8_t CMPSEL0;
104 volatile uint8_t _r1[3];
105 volatile uint8_t CMPSEL1;
106 volatile uint8_t _r2[3];
107 volatile uint8_t CMPMON;
108 volatile uint8_t _r3[3];
109 volatile uint8_t CPIOC;
110 volatile uint8_t _r4[k_ra8_acmphs_reserved_mid];
111 volatile uint8_t CPINTCTL;
112 volatile uint8_t _r5[3];
113 volatile uint8_t CPMSKCTL;
115
123static inline volatile r_acmphs_regs_t* ra8_acmphs(uint8_t channel)
124{
125 if ((uint16_t)channel >= k_ra8_acmphs_channel_count) {
126 return nullptr;
127 }
128 return (volatile r_acmphs_regs_t*)(k_ra8_acmphs0_base_addr +
129 ((uintptr_t)channel * (uintptr_t)k_ra8_acmphs_channel_stride));
130}
131
132#ifdef __cplusplus
133}
134#endif
static volatile r_acmphs_regs_t * ra8_acmphs(uint8_t channel)
Get pointer to ACMPHS channel channel.
ra8_acmphs_mask_t
CMPCTL bit masks.
@ k_ra8_acmphs_mask_cinv
CINV bit.
@ k_ra8_acmphs_mask_csten
CSTEN interrupt select.
@ k_ra8_acmphs_mask_coe
COE bit.
@ k_ra8_acmphs_mask_hcmon
CMPMON.CMPMON: output level read.
@ k_ra8_acmphs_mask_hcen
HCMPON operation enable.
@ k_ra8_acmphs_mask_ceg
CEG[1:0] @ [4:3] edge selector.
@ k_ra8_acmphs_mask_cdfs
CDFS[1:0] @ [6:5] noise filter.
ra8_acmphs_addr_t
Memory-mapped base addresses for ACMPHS.
@ k_ra8_acmphs0_base_addr
ACMPHS channel 0 base (FSP R_ACMPHS0_BASE).
ra8_acmphs_limits_t
Channel count and stride.
@ k_ra8_acmphs_channel_count
Channels 0..5 on this package.
@ k_ra8_acmphs_reserved_mid
Reserved gap CPIOC->CPINTCTL.
@ k_ra8_acmphs_channel_stride
Bytes between channels.
ra8_cmpctl_bit_t
CMPCTL control-bit positions (verified against FSP R_ACMPHS0_CMPCTL_b, R7KA8D2KF_core0....
@ k_ra8_acmphs_bit_hcmpon
Comparator operation enable.
@ k_ra8_acmphs_bit_csten
Interrupt select.
@ k_ra8_acmphs_bit_cdfs1
CDFS[1:0] noise filter hi.
@ k_ra8_acmphs_bit_cinv
Output polarity inversion.
@ k_ra8_acmphs_bit_coe
Output enable (to pin).
@ k_ra8_acmphs_bit_ceg1
CEG[1:0] edge selector hi.
@ k_ra8_acmphs_bit_ceg0
CEG[1:0] edge selector lo.
@ k_ra8_acmphs_bit_cdfs0
CDFS[1:0] noise filter lo.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
Per-channel ACMPHS register window.
volatile uint8_t _r1[3]
Padding.
volatile uint8_t CMPCTL
+0x00 Control (enable, edges, filter).
volatile uint8_t CMPSEL0
+0x04 Plus-input selection.
volatile uint8_t CPMSKCTL
+0x44 Interrupt mask control.
volatile uint8_t _r4[k_ra8_acmphs_reserved_mid]
Reserved.
volatile uint8_t CPINTCTL
+0x40 Interrupt control.
volatile uint8_t _r3[3]
Padding.
volatile uint8_t _r0[3]
Padding.
volatile uint8_t CPIOC
+0x10 Output polarity / pin control.
volatile uint8_t _r5[3]
Padding.
volatile uint8_t CMPSEL1
+0x08 Minus-input selection.
volatile uint8_t CMPMON
+0x0C Output monitor (read-only).
volatile uint8_t _r2[3]
Padding.