|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Serial Sound Interface Enhanced (SSIE) register layout for the RA8D2. More...
Go to the source code of this file.
Data Structures | |
| struct | r_ssie_regs_t |
| Per-channel SSIE register window. More... | |
Functions | |
| static volatile r_ssie_regs_t * | ra8_ssie (uint8_t channel) |
| Get pointer to an SSIE channel block. | |
Serial Sound Interface Enhanced (SSIE) register layout for the RA8D2.
The RA8D2 exposes two SSIE channels (SSIE0 and SSIE1). Each channel has an independent register window at base 0x4025_D000 with a 0x100 stride (HUM Ch 46.2.1, p 3056). The same offset map is reused by both channels and is shown by HUM Table 46.9 "Bits subject to software reset by the SSIRST bit", p 3081.
Per-channel registers:
| Offset | Name | Width | Purpose |
|---|---|---|---|
| 0x00 | SSICR | 32 | Control (TEN/REN, MST, DWL, SWL ...) |
| 0x04 | SSISR | 32 | Status (IIRQ + over/underflow flags) |
| 0x10 | SSIFCR | 32 | FIFO Control (RIE, TIE, AUCKE ...) |
| 0x14 | SSIFSR | 32 | FIFO Status (RDF, TDE, RDC, TDC) |
| 0x18 | SSIFTDR | 32 | Transmit FIFO Data Register |
| 0x1C | SSIFRDR | 32 | Receive FIFO Data Register |
| 0x20 | SSIOFR | 32 | Audio Format (OMOD, LRCONT, BCKASTP) |
| 0x24 | SSISCR | 32 | Status Control (TDES, RDFS) |
Field bit positions are sourced from HUM Ch 46.2 register description tables (p 3056-3094) and cross-checked against the ra/fsp/src/r_ssi/r_ssi.c shift macros in the Renesas FSP sources (FSP is reference only – no code copied).
Definition in file ra8_ssie_regs.h.
| enum ra8_ssicr_bit_t : uint8_t |
SSICR control-bit positions.
Verified against HUM Ch 46.2.1 "SSICR : Control Register" p 3056-3058 and FSP r_ssi.c SSI_PRV_SSICR_* macros.
Definition at line 80 of file ra8_ssie_regs.h.
| enum ra8_ssicr_mask_t : uint32_t |
SSICR field masks (32-bit register).
Definition at line 107 of file ra8_ssie_regs.h.
| enum ra8_ssie_addr_t : uintptr_t |
Memory-mapped base addresses for SSIE channels.
HUM Ch 46.2.1 "SSICR : Control Register", p 3056 defines the base as SSIEn = 0x4025_D000 + 0x0100 * n (n = 0, 1).
| Enumerator | |
|---|---|
| k_ra8_ssie0_base_addr | SSIE0 base (full duplex). |
| k_ra8_ssie1_base_addr | SSIE1 base (half duplex). |
Definition at line 54 of file ra8_ssie_regs.h.
| enum ra8_ssie_frm_t : uint8_t |
FRM[1:0] encoding from HUM Ch 46.2.1 table p 3057.
The number of words per frame depends on OMOD; see the cross-table for valid combinations.
| Enumerator | |
|---|---|
| k_ra8_ssie_frm_default | 2 (I2S) / 1 (Mon) / – (TDM) |
| k_ra8_ssie_frm_alt1 | – / – / 4 (TDM-4) |
| k_ra8_ssie_frm_alt2 | – / – / 6 (TDM-6) |
| k_ra8_ssie_frm_alt3 | – / – / 8 (TDM-8) |
Definition at line 268 of file ra8_ssie_regs.h.
| enum ra8_ssie_limits_t : uint16_t |
Channel-count, FIFO depth and stride constants.
Definition at line 63 of file ra8_ssie_regs.h.
| enum ra8_ssie_omod_t : uint8_t |
OMOD[1:0] encoding from HUM Ch 46.2.7 table p 3091.
| Enumerator | |
|---|---|
| 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. |
Definition at line 254 of file ra8_ssie_regs.h.
| enum ra8_ssifcr_mask_t : uint32_t |
SSIFCR FIFO control bits (HUM Ch 46.2.3, p 3077).
RTRG[5:4] and TTRG[7:6] are the FIFO request trigger thresholds used to drive RXI/TXI to the DMAC/DTC; see HUM Table 46.5 and FSP R_SSI0_SSIFCR_b.RTRG / TTRG field definitions.
Definition at line 163 of file ra8_ssie_regs.h.
| enum ra8_ssifcr_shift_t : uint8_t |
SSIFCR field bit positions for RTRG / TTRG.
See HUM Ch 46.2.3 "SSIFCR : FIFO Control Register" p 3077 and FSP R_SSI0_SSIFCR_b.RTRG / TTRG (BSP header).
| Enumerator | |
|---|---|
| k_ra8_ssie_shift_rtrg | RTRG[1:0] starts at bit 4. |
| k_ra8_ssie_shift_ttrg | TTRG[1:0] starts at bit 6. |
Definition at line 184 of file ra8_ssie_regs.h.
| enum ra8_ssifsr_mask_t : uint32_t |
SSIFSR FIFO status bits (HUM Ch 46.2.4, p 3083-3084).
RDF and TDE are write-1-to-1-keep / write-0-to-clear; FSP code at p 3084 maps the only-keep encodings to the rdf_clear / tde_clear constants below.
Definition at line 198 of file ra8_ssie_regs.h.
| enum ra8_ssifsr_shift_t : uint8_t |
SSIFSR field bit positions for extraction.
| Enumerator | |
|---|---|
| k_ra8_ssie_shift_rdc | RDC[5:0] starts at bit 8. |
| k_ra8_ssie_shift_tdc | TDC[5:0] starts at bit 24. |
Definition at line 211 of file ra8_ssie_regs.h.
| enum ra8_ssiofr_mask_t : uint32_t |
SSIOFR audio format bits (HUM Ch 46.2.7, p 3091).
| Enumerator | |
|---|---|
| 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. |
Definition at line 220 of file ra8_ssie_regs.h.
| enum ra8_ssiscr_mask_t : uint32_t |
SSISCR FIFO trigger thresholds (HUM Ch 46.2.8, p 3094).
| Enumerator | |
|---|---|
| k_ra8_ssie_mask_rdfs | RDFS[4:0] @ [4:0]. |
| k_ra8_ssie_mask_tdes | TDES[4:0] @ [12:8]. |
Definition at line 230 of file ra8_ssie_regs.h.
| enum ra8_ssiscr_shift_t : uint8_t |
SSISCR field bit positions.
| Enumerator | |
|---|---|
| k_ra8_ssie_shift_rdfs | RDFS[4:0] starts at bit 0. |
| k_ra8_ssie_shift_tdes | TDES[4:0] starts at bit 8. |
Definition at line 239 of file ra8_ssie_regs.h.
| enum ra8_ssisr_mask_t : uint32_t |
SSISR status flags (HUM Ch 46.2.2, p 3066-3067).
IDST is the live idle-status flag at bit 0 (FSP R_SSI0_SSISR_b.IDST). It is read-only and reflects the SSIE core state machine, not an interrupt latch; the latched IIRQ at bit 25 is what fires the idle interrupt.
Definition at line 143 of file ra8_ssie_regs.h.
|
inlinestatic |
Get pointer to an SSIE channel block.
| [in] | channel | Channel index (0 = SSIE0, 1 = SSIE1). |
Definition at line 311 of file ra8_ssie_regs.h.
References k_ra8_ssie0_base_addr, k_ra8_ssie_channel_count, and k_ra8_ssie_channel_stride.
Referenced by priv_ra8_ssie_internal_regs().