51typedef enum : uintptr_t {
60typedef enum : uint16_t {
104 "RIIC register block must be 22 (0x16) bytes");
117typedef enum : uint8_t {
132typedef enum : uint8_t {
145typedef enum : uint8_t {
154typedef enum : uint8_t {
167typedef enum : uint8_t {
182typedef enum : uint8_t {
197typedef enum : uint8_t {
219typedef enum : uint8_t {
239typedef enum : uint8_t {
257typedef enum : uint8_t {
271typedef enum : uint8_t {
286typedef enum : uint8_t {
324typedef enum : uint8_t {
361 const uintptr_t base =
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_i2c_saru_t
SARUy (own-address upper) field positions (HUM Ch 39.2.14, p 2391).
@ k_ra8_i2c_saru_sva_pos
10-bit own-address upper SVA[1:0].
@ k_ra8_i2c_saru_fs_pos
7-bit (0) / 10-bit (1) format select.
ra8_i2c_icmr1_t
ICMR1 (Bus Mode 1) field positions (HUM Ch 39.2.3, p 2374).
@ k_ra8_i2c_icmr1_mtwp_pos
MST/TRS write protect.
@ k_ra8_i2c_icmr1_cks_pos
Internal reference clock select [6:4].
ra8_i2c_icmr3_t
ICMR3 (Bus Mode 3) field positions (HUM Ch 39.2.5, p 2376).
@ k_ra8_i2c_icmr3_ackwp_pos
ACKBT write protect.
@ k_ra8_i2c_icmr3_rdrfs_pos
RDRF flag set timing select.
@ k_ra8_i2c_icmr3_wait_pos
Wait between 9th and 1st clock.
@ k_ra8_i2c_icmr3_smbs_pos
SMBus/I2C select.
@ k_ra8_i2c_icmr3_ackbt_pos
Transmit acknowledge.
@ k_ra8_i2c_icmr3_ackbr_pos
Receive acknowledge (R).
ra8_i2c_sarl_t
SARLy (own-address lower) field positions (HUM Ch 39.2.13, p 2390).
@ k_ra8_i2c_sarl_sva0_pos
10-bit own-address LSB (SVA0).
@ k_ra8_i2c_sarl_sva_pos
7-bit own address / 10-bit low SVA[6:0].
ra8_i2c_mask_t
Composite bit masks used by the polling driver (HUM Ch 39.2).
@ k_ra8_i2c_msk_icsr2_al
HUM 39.2.10 ICSR2.AL, p 2384.
@ k_ra8_i2c_msk_iccr2_rs
HUM 39.2.2 ICCR2.RS, p 2371.
@ k_ra8_i2c_msk_icfer_fmpe
HUM 39.2.6 ICFER.FMPE, p 2378.
@ k_ra8_i2c_msk_icmr1_mtwp
HUM 39.2.3 ICMR1.MTWP, p 2374.
@ k_ra8_i2c_msk_iccr2_st
HUM 39.2.2 ICCR2.ST, p 2371.
@ k_ra8_i2c_msk_icfer_nacke
HUM 39.2.6 ICFER.NACKE, p 2378.
@ k_ra8_i2c_msk_iccr2_mst
HUM 39.2.2 ICCR2.MST, p 2371.
@ k_ra8_i2c_msk_icmr3_ackbr
HUM 39.2.5 ICMR3.ACKBR, p 2376.
@ k_ra8_i2c_msk_iccr2_trs
HUM 39.2.2 ICCR2.TRS, p 2371.
@ k_ra8_i2c_msk_icsr2_nackf
HUM 39.2.10 ICSR2.NACKF, p 2384.
@ k_ra8_i2c_msk_iccr2_sp
HUM 39.2.2 ICCR2.SP, p 2371.
@ k_ra8_i2c_msk_iccr1_iicrst
HUM 39.2.1 ICCR1.IICRST, p 2369.
@ k_ra8_i2c_msk_iccr1_ice
HUM 39.2.1 ICCR1.ICE, p 2369.
@ k_ra8_i2c_msk_icsr2_tdre
HUM 39.2.10 ICSR2.TDRE, p 2384.
@ k_ra8_i2c_msk_iccr1_sowp
HUM 39.2.1 ICCR1.SOWP, p 2369.
@ k_ra8_i2c_msk_icmr3_wait
HUM 39.2.5 ICMR3.WAIT, p 2376.
@ k_ra8_i2c_msk_iccr2_bbsy
HUM 39.2.2 ICCR2.BBSY, p 2371.
@ k_ra8_i2c_msk_icsr2_stop
HUM 39.2.10 ICSR2.STOP, p 2384.
@ k_ra8_i2c_msk_icmr3_ackbt
HUM 39.2.5 ICMR3.ACKBT, p 2376.
@ k_ra8_i2c_msk_icsr2_tend
HUM 39.2.10 ICSR2.TEND, p 2384.
@ k_ra8_i2c_msk_icfer_scle
HUM 39.2.6 ICFER.SCLE, p 2378.
@ k_ra8_i2c_msk_icfer_nfe
HUM 39.2.6 ICFER.NFE, p 2378.
@ k_ra8_i2c_msk_icmr3_ackwp
HUM 39.2.5 ICMR3.ACKWP, p 2376.
@ k_ra8_i2c_msk_icfer_male
HUM 39.2.6 ICFER.MALE, p 2378.
@ k_ra8_i2c_msk_icsr2_rdrf
HUM 39.2.10 ICSR2.RDRF, p 2384.
ra8_i2c_iccr1_t
ICCR1 (Bus Control 1) field positions (HUM Ch 39.2.1, p 2369).
@ k_ra8_i2c_iccr1_sowp_pos
SCLO/SDAO write protect.
@ k_ra8_i2c_iccr1_scli_pos
SCL line monitor (R).
@ k_ra8_i2c_iccr1_sclo_pos
SCL output control/monitor.
@ k_ra8_i2c_iccr1_sdai_pos
SDA line monitor (R).
@ k_ra8_i2c_iccr1_sdao_pos
SDA output control/monitor.
@ k_ra8_i2c_iccr1_clo_pos
Extra SCL clock cycle output.
@ k_ra8_i2c_iccr1_iicrst_pos
I2C internal reset.
@ k_ra8_i2c_iccr1_ice_pos
I2C interface enable.
ra8_i2c_limits_t
Channel-count limits.
@ k_ra8_i2c_channel_count
HUM Ch 39.1, p 2367 (3 channels).
@ k_ra8_i2c_regs_block_bytes
sizeof(r_i2c_regs_t): 0x00..0x15.
ra8_i2c_icier_t
ICIER (Bus Interrupt Enable) field positions (HUM Ch 39.2.8, p 2381).
@ k_ra8_i2c_icier_alie_pos
Arbitration-lost interrupt enable.
@ k_ra8_i2c_icier_teie_pos
Transmit end interrupt enable.
@ k_ra8_i2c_icier_stie_pos
Start condition interrupt enable.
@ k_ra8_i2c_icier_rie_pos
Receive data full interrupt enable.
@ k_ra8_i2c_icier_tmoie_pos
Timeout interrupt enable.
@ k_ra8_i2c_icier_spie_pos
Stop condition interrupt enable.
@ k_ra8_i2c_icier_nakie_pos
NACK reception interrupt enable.
@ k_ra8_i2c_icier_tie_pos
Transmit data empty interrupt enable.
ra8_i2c_icsr1_t
ICSR1 (Bus Status 1) field positions (HUM Ch 39.2.9, p 2382).
@ k_ra8_i2c_icsr1_aas1_pos
Own-address slot 1 detected.
@ k_ra8_i2c_icsr1_did_pos
Device-ID address detected.
@ k_ra8_i2c_icsr1_hoa_pos
Host address detected.
@ k_ra8_i2c_icsr1_aas2_pos
Own-address slot 2 detected.
@ k_ra8_i2c_icsr1_gca_pos
General-call address detected.
@ k_ra8_i2c_icsr1_aas0_pos
Own-address slot 0 detected.
static volatile r_i2c_regs_t * ra8_i2c_regs(uint8_t channel)
Get a pointer to the IIC channel channel register block.
ra8_i2c_icser_t
ICSER (Bus Status Enable) field positions (HUM Ch 39.2.7, p 2380).
@ k_ra8_i2c_icser_hoae_pos
Host-address enable.
@ k_ra8_i2c_icser_sar2e_pos
Own-address slot 2 match enable.
@ k_ra8_i2c_icser_gcae_pos
General-call address enable.
@ k_ra8_i2c_icser_sar0e_pos
Own-address slot 0 match enable.
@ k_ra8_i2c_icser_dide_pos
Device-ID address detect enable.
@ k_ra8_i2c_icser_sar1e_pos
Own-address slot 1 match enable.
ra8_i2c_icsr2_t
ICSR2 (Bus Status 2) field positions (HUM Ch 39.2.10, p 2384).
@ k_ra8_i2c_icsr2_tmof_pos
Timeout detection flag.
@ k_ra8_i2c_icsr2_al_pos
Arbitration-lost flag.
@ k_ra8_i2c_icsr2_start_pos
Start condition detection flag.
@ k_ra8_i2c_icsr2_tdre_pos
Transmit data empty flag.
@ k_ra8_i2c_icsr2_nackf_pos
NACK detection flag.
@ k_ra8_i2c_icsr2_stop_pos
Stop condition detection flag.
@ k_ra8_i2c_icsr2_tend_pos
Transmit end flag.
@ k_ra8_i2c_icsr2_rdrf_pos
Receive data full flag.
ra8_i2c_addr_t
Hardware base addresses for the IIC channels.
@ k_ra8_i2c0_base_addr
HUM Ch 39.2.1, p 2369.
@ k_ra8_i2c_channel_stride
HUM Ch 39.2.1, p 2369.
ra8_i2c_peripheral_mask_t
Composite masks for the target (peripheral) role (HUM Ch 39.2).
@ k_ra8_i2c_msk_icsr1_aas2
HUM 39.2.9 ICSR1.AAS2, p 2382.
@ k_ra8_i2c_msk_icser_gcae
HUM 39.2.7 ICSER.GCAE, p 2380.
@ k_ra8_i2c_msk_icser_sar2e
HUM 39.2.7 ICSER.SAR2E, p 2380.
@ k_ra8_i2c_msk_icser_sar1e
HUM 39.2.7 ICSER.SAR1E, p 2380.
@ k_ra8_i2c_msk_icsr1_gca
HUM 39.2.9 ICSR1.GCA, p 2382.
@ k_ra8_i2c_msk_icsr1_match
Union AAS0|AAS1|AAS2|GCA: any own-address/general-call match.
@ k_ra8_i2c_msk_icser_sar0e
HUM 39.2.7 ICSER.SAR0E, p 2380.
@ k_ra8_i2c_msk_icsr1_aas0
HUM 39.2.9 ICSR1.AAS0, p 2382.
@ k_ra8_i2c_msk_icsr1_aas1
HUM 39.2.9 ICSR1.AAS1, p 2382.
ra8_i2c_iccr2_t
ICCR2 (Bus Control 2) field positions (HUM Ch 39.2.2, p 2371).
@ k_ra8_i2c_iccr2_mst_pos
Controller/peripheral mode.
@ k_ra8_i2c_iccr2_trs_pos
Transmit/receive mode.
@ k_ra8_i2c_iccr2_sp_pos
Stop condition issuance request.
@ k_ra8_i2c_iccr2_bbsy_pos
Bus busy detection flag (R).
@ k_ra8_i2c_iccr2_rs_pos
Restart condition issuance request.
@ k_ra8_i2c_iccr2_st_pos
Start condition issuance request.
ra8_i2c_icfer_t
ICFER (Bus Function Enable) field positions (HUM Ch 39.2.6, p 2378).
@ k_ra8_i2c_icfer_male_pos
Controller arbitration-lost detect enable.
@ k_ra8_i2c_icfer_nale_pos
NACK transmit arbitration-lost enable.
@ k_ra8_i2c_icfer_sale_pos
Peripheral arbitration-lost enable.
@ k_ra8_i2c_icfer_tmoe_pos
Timeout function enable.
@ k_ra8_i2c_icfer_scle_pos
SCL synchronous circuit enable.
@ k_ra8_i2c_icfer_nacke_pos
NACK reception transfer suspension enable.
@ k_ra8_i2c_icfer_fmpe_pos
Fast-mode plus enable.
@ k_ra8_i2c_icfer_nfe_pos
Digital noise filter enable.
Memory-mapped register block for one IIC channel.
volatile uint8_t ICCR2
+0x01 Bus Control Register 2 (HUM 39.2.2, p 2371).
volatile uint8_t ICMR1
+0x02 Bus Mode Register 1 (HUM 39.2.3, p 2374).
volatile uint8_t ICIER
+0x07 Bus Interrupt Enable (HUM 39.2.8, p 2381).
volatile uint8_t ICWUR2
+0x15 Wakeup Unit Register 2 (HUM 39.2.12, p 2389).
volatile uint8_t SARU0
+0x0B Peripheral Address U0 (HUM 39.2.14, p 2391).
volatile uint8_t ICBRL
+0x10 Bit Rate Low-Level (HUM 39.2.15, p 2391).
volatile uint8_t ICSER
+0x06 Bus Status Enable (HUM 39.2.7, p 2380).
volatile uint8_t ICDRT
+0x12 Transmit Data Register (HUM 39.2.17, p 2393).
volatile uint8_t ICDRR
+0x13 Receive Data Register (HUM 39.2.18, p 2393).
volatile uint8_t ICSR1
+0x08 Bus Status Register 1 (HUM 39.2.9, p 2382).
volatile uint8_t SARL2
+0x0E Peripheral Address L2 (HUM 39.2.13, p 2390).
volatile uint8_t SARL1
+0x0C Peripheral Address L1 (HUM 39.2.13, p 2390).
volatile uint8_t ICFER
+0x05 Bus Function Enable (HUM 39.2.6, p 2378).
volatile uint8_t ICWUR
+0x14 Wakeup Unit Register (HUM 39.2.11, p 2388).
volatile uint8_t ICCR1
+0x00 Bus Control Register 1 (HUM 39.2.1, p 2369).
volatile uint8_t ICMR2
+0x03 Bus Mode Register 2 (HUM 39.2.4, p 2375).
volatile uint8_t SARU1
+0x0D Peripheral Address U1 (HUM 39.2.14, p 2391).
volatile uint8_t SARU2
+0x0F Peripheral Address U2 (HUM 39.2.14, p 2391).
volatile uint8_t SARL0
+0x0A Peripheral Address L0 (HUM 39.2.13, p 2390).
volatile uint8_t ICMR3
+0x04 Bus Mode Register 3 (HUM 39.2.5, p 2376).
volatile uint8_t ICBRH
+0x11 Bit Rate High-Level (HUM 39.2.16, p 2392).
volatile uint8_t ICSR2
+0x09 Bus Status Register 2 (HUM 39.2.10, p 2384).