54typedef enum : uintptr_t {
63typedef enum : uint16_t {
80typedef enum : uint8_t {
107typedef enum : uint32_t {
143typedef enum : uint32_t {
163typedef enum : uint32_t {
184typedef enum : uint8_t {
198typedef enum : uint32_t {
211typedef enum : uint8_t {
220typedef enum : uint32_t {
230typedef enum : uint32_t {
239typedef enum : uint8_t {
254typedef enum : uint8_t {
268typedef enum : uint8_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_ssifcr_shift_t
SSIFCR field bit positions for RTRG / TTRG.
@ k_ra8_ssie_shift_ttrg
TTRG[1:0] starts at bit 6.
@ k_ra8_ssie_shift_rtrg
RTRG[1:0] starts at bit 4.
ra8_ssifsr_shift_t
SSIFSR field bit positions for extraction.
@ k_ra8_ssie_shift_tdc
TDC[5:0] starts at bit 24.
@ k_ra8_ssie_shift_rdc
RDC[5:0] starts at bit 8.
ra8_ssiscr_shift_t
SSISCR field bit positions.
@ k_ra8_ssie_shift_tdes
TDES[4:0] starts at bit 8.
@ k_ra8_ssie_shift_rdfs
RDFS[4:0] starts at bit 0.
ra8_ssifcr_mask_t
SSIFCR FIFO control bits (HUM Ch 46.2.3, p 3077).
@ k_ra8_ssie_mask_rie
RIE receive full IRQ.
@ k_ra8_ssie_mask_tfrst
TFRST transmit FIFO reset.
@ k_ra8_ssie_mask_tie
TIE transmit empty IRQ.
@ k_ra8_ssie_mask_aucke
AUCKE AUDIO_MCK enable.
@ k_ra8_ssie_mask_rfrst
RFRST receive FIFO reset.
@ k_ra8_ssie_mask_ttrg
TTRG[1:0] @ [7:6].
@ k_ra8_ssie_mask_rie_tie
RIE | TIE.
@ k_ra8_ssie_mask_rtrg
RTRG[1:0] @ [5:4].
@ k_ra8_ssie_mask_bsw
BSW byte-swap enable.
@ k_ra8_ssie_mask_ssirst
SSIRST software reset.
@ k_ra8_ssie_mask_rfrst_tfrst
Both FIFO reset bits.
ra8_ssie_limits_t
Channel-count, FIFO depth and stride constants.
@ k_ra8_ssie_fifo_half_water
Default TX watermark.
@ k_ra8_ssie_channel_count
SSIE0 + SSIE1.
@ k_ra8_ssie_reset_poll_max
Bounded reset poll loops.
@ k_ra8_ssie_fifo_block_size
DMA block stages.
@ k_ra8_ssie_channel_stride
Bytes between channels.
@ k_ra8_ssie_fifo_depth
32-stage FIFO per dir.
ra8_ssie_omod_t
OMOD[1:0] encoding from HUM Ch 46.2.7 table p 3091.
@ k_ra8_ssie_omod_i2s
RA8 ssie omod i2s.
@ k_ra8_ssie_omod_tdm
RA8 ssie omod tdm.
@ k_ra8_ssie_omod_monaural
RA8 ssie omod monaural.
ra8_ssicr_bit_t
SSICR control-bit positions.
@ k_ra8_ssie_bit_spdp
SPDP: padding polarity.
@ k_ra8_ssie_bit_del
DEL: serial data delay select.
@ k_ra8_ssie_bit_roien
ROIEN: receive overflow IRQ en.
@ k_ra8_ssie_bit_muen
MUEN: mute enable.
@ k_ra8_ssie_bit_ckdv0
CKDV[3:0] @ [7:4] bit clock div.
@ k_ra8_ssie_bit_lrckp
LRCKP: LR/FS init level + polarity.
@ k_ra8_ssie_bit_dwl0
DWL[2:0] @ [21:19] data word.
@ k_ra8_ssie_bit_frm0
FRM[1:0] @ [23:22] frame words.
@ k_ra8_ssie_bit_cks
CKS: controller audio-clock select.
@ k_ra8_ssie_bit_ruien
RUIEN: receive underflow IRQ en.
@ k_ra8_ssie_bit_pdta
PDTA: placement data alignment.
@ k_ra8_ssie_bit_bckp
BCKP: bit clock polarity.
@ k_ra8_ssie_bit_ten
TEN: transmission enable.
@ k_ra8_ssie_bit_toien
TOIEN: transmit overflow IRQ en.
@ k_ra8_ssie_bit_swl0
SWL[2:0] @ [18:16] system word.
@ k_ra8_ssie_bit_tuien
TUIEN: transmit underflow IRQ en.
@ k_ra8_ssie_bit_ren
REN: reception enable.
@ k_ra8_ssie_bit_sdta
SDTA: serial data alignment.
@ k_ra8_ssie_bit_mst
MST: controller-mode enable.
@ k_ra8_ssie_bit_iien
IIEN: idle mode IRQ enable.
ra8_ssie_frm_t
FRM[1:0] encoding from HUM Ch 46.2.1 table p 3057.
@ k_ra8_ssie_frm_default
2 (I2S) / 1 (Mon) / – (TDM)
@ k_ra8_ssie_frm_alt3
– / – / 8 (TDM-8)
@ k_ra8_ssie_frm_alt1
– / – / 4 (TDM-4)
@ k_ra8_ssie_frm_alt2
– / – / 6 (TDM-6)
ra8_ssie_addr_t
Memory-mapped base addresses for SSIE channels.
@ k_ra8_ssie0_base_addr
SSIE0 base (full duplex).
@ k_ra8_ssie1_base_addr
SSIE1 base (half duplex).
ra8_ssisr_mask_t
SSISR status flags (HUM Ch 46.2.2, p 3066-3067).
@ k_ra8_ssie_mask_idst
IDST live idle flag (RO).
@ k_ra8_ssie_mask_err_all
ROIRQ|RUIRQ|TOIRQ|TUIRQ.
@ k_ra8_ssie_mask_ruirq
RUIRQ receive underflow.
@ k_ra8_ssie_mask_roirq
ROIRQ receive overflow.
@ k_ra8_ssie_mask_evt_all
IIRQ + four error flags.
@ k_ra8_ssie_mask_toirq
TOIRQ transmit overflow.
@ k_ra8_ssie_mask_tuirq
TUIRQ transmit underflow.
@ k_ra8_ssie_mask_iirq
IIRQ idle-mode flag (RO).
ra8_ssicr_mask_t
SSICR field masks (32-bit register).
@ k_ra8_ssie_mask_err_ien
ROIEN..TUIEN tx/rx err IRQs.
@ k_ra8_ssie_mask_lrckp
LRCKP.
@ k_ra8_ssie_mask_ckdv
CKDV[3:0] @ [7:4].
@ k_ra8_ssie_mask_swl
SWL[2:0] @ [18:16].
@ k_ra8_ssie_mask_ruien
RUIEN.
@ k_ra8_ssie_mask_dwl
DWL[2:0] @ [21:19].
@ k_ra8_ssie_mask_sdta
SDTA.
@ k_ra8_ssie_mask_mst
MST.
@ k_ra8_ssie_mask_tuien
TUIEN.
@ k_ra8_ssie_mask_bckp
BCKP.
@ k_ra8_ssie_mask_ren
REN.
@ k_ra8_ssie_mask_del
DEL.
@ k_ra8_ssie_mask_spdp
SPDP.
@ k_ra8_ssie_mask_roien
ROIEN.
@ k_ra8_ssie_mask_muen
MUEN.
@ k_ra8_ssie_mask_ren_ten
REN | TEN.
@ k_ra8_ssie_mask_ten
TEN.
@ k_ra8_ssie_mask_iien
IIEN.
@ k_ra8_ssie_mask_frm
FRM[1:0] @ [23:22].
@ k_ra8_ssie_mask_cks
CKS audio clock select.
@ k_ra8_ssie_mask_pdta
PDTA.
@ k_ra8_ssie_mask_irq_all
IIEN..TUIEN aggregate IRQ.
@ k_ra8_ssie_mask_toien
TOIEN.
ra8_ssifsr_mask_t
SSIFSR FIFO status bits (HUM Ch 46.2.4, p 3083-3084).
@ k_ra8_ssie_mask_tde_clear
Keep RDF while clearing TDE.
@ k_ra8_ssie_mask_rdf_clear
Keep TDE while clearing RDF.
@ k_ra8_ssie_mask_rdf
RDF receive data full.
@ k_ra8_ssie_mask_tdc
TDC[5:0] @ [29:24].
@ k_ra8_ssie_mask_rdc
RDC[5:0] @ [13:8].
@ k_ra8_ssie_mask_tde
TDE transmit data empty.
ra8_ssiscr_mask_t
SSISCR FIFO trigger thresholds (HUM Ch 46.2.8, p 3094).
@ k_ra8_ssie_mask_rdfs
RDFS[4:0] @ [4:0].
@ k_ra8_ssie_mask_tdes
TDES[4:0] @ [12:8].
static volatile r_ssie_regs_t * ra8_ssie(uint8_t channel)
Get pointer to an SSIE channel block.
ra8_ssiofr_mask_t
SSIOFR audio format bits (HUM Ch 46.2.7, p 3091).
@ k_ra8_ssie_mask_omod
OMOD[1:0] @ [1:0].
@ k_ra8_ssie_mask_lrcont
LRCONT continuation.
@ k_ra8_ssie_mask_bckastp
BCKASTP idle-stop BCK.
Per-channel SSIE register window.
volatile uint32_t SSISR
+0x04 Status register.
volatile uint32_t SSIFTDR
+0x18 Transmit FIFO data.
volatile uint32_t SSIOFR
+0x20 Audio format register.
volatile uint32_t SSIFSR
+0x14 FIFO status register.
volatile uint32_t SSISCR
+0x24 Status control register.
volatile uint32_t SSIFRDR
+0x1C Receive FIFO data.
volatile uint32_t SSICR
+0x00 Control register.
volatile uint32_t SSIFCR
+0x10 FIFO control register.
volatile uint8_t _r0[8]
Reserved 0x08..0x0F.