|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
I3C Bus Interface register layout for the Renesas RA8D2. More...
Go to the source code of this file.
Data Structures | |
| struct | r_i3c_regs_t |
| Partial RA8D2 I3C0 register window. More... | |
Functions | |
| static volatile r_i3c_regs_t * | ra8_i3c (void) |
| Get pointer to I3C0. | |
I3C Bus Interface register layout for the Renesas RA8D2.
Two I3C instances are available on the RA8D2 (R_I3C0 at 0x4035F000 and R_I3C1 at 0x4035F100); this driver only exposes the first instance through ra8_i3c(). Layout is derived directly from the FSP CMSIS device header R7KA8D2KF_core0.h (R_I3C0_Type) and matches the field map in HUM Ch 40 "I3C Bus Interface (I3C)" pp 2445-2701.
Coverage spans the bring-up registers (PRTS, CECTL, BCTL, MSDVAD, RSTCTL, PRSST), the internal-error interrupt block (INST, INSTE, INIE, INSTFC), the IBI / arbitration controls (IBINCTL, BFCTL, SVCTL), the timing-and-rate group (REFCKCTL, STDBR, EXTBR, BFRECDT, BAVLCDT, BIDLCDT), the line-control
Definition in file ra8_i3c_regs.h.
| enum ra8_i3c_addr_t : uintptr_t |
I3C peripheral base addresses.
Both instances share the identical R_I3C0_Type register layout, so the same struct overlay can describe either base.
| Enumerator | |
|---|---|
| k_ra8_i3c0_base_addr | I3C0 peripheral base. |
| k_ra8_i3c1_base_addr | I3C1 peripheral base. |
| k_ra8_i3c_base_addr | RA8 I3C base address. |
Definition at line 52 of file ra8_i3c_regs.h.
| enum ra8_i3c_bctl_bits_t : uint32_t |
BCTL register bit positions / masks.
Definition at line 190 of file ra8_i3c_regs.h.
| enum ra8_i3c_byte_t : uint32_t |
Byte-pack helpers used to assemble / disassemble 32-bit FIFO words.
Definition at line 402 of file ra8_i3c_regs.h.
| enum ra8_i3c_ccc_opcode_t : uint8_t |
MIPI I3C v1.0 Common Command Code (CCC) opcodes.
Broadcast CCCs occupy 0x00..0x7F and are addressed to 0x7E (the I3C broadcast address). Direct CCCs occupy 0x80..0xFE and target a specific dynamic address after the CCC is issued. See HUM Ch 40 "I3C Bus Interface (I3C)" pp 2445-2701 and the MIPI I3C specification "Common Command Codes" table.
Definition at line 298 of file ra8_i3c_regs.h.
| enum ra8_i3c_cmd_desc_bits_t : uint32_t |
NCMDQP command-descriptor field positions (FSP I3C_CMD_DESC_*).
The command queue accepts two 32-bit words per descriptor; this enum names every shift/mask used to assemble the first word, and the second-word XFER_LENGTH field for non-immediate transfers. See HUM Ch 40 "Command Descriptor" pp 2445-2701.
Definition at line 336 of file ra8_i3c_regs.h.
| enum ra8_i3c_cmd_hdr_mode_t : uint32_t |
NCMDQP "transfer mode" attribute values for HDR transactions.
The HDR-mode field lives at NCMDQP word-0 bits [27:26]. See HUM Ch 40 "Command Descriptor" pp 2445-2701.
| Enumerator | |
|---|---|
| k_ra8_i3c_cmd_hdr_mode_sdr | Plain SDR transfer (default). |
| k_ra8_i3c_cmd_hdr_mode_ddr | HDR-DDR. |
| k_ra8_i3c_cmd_hdr_mode_ts | HDR-TS. |
| k_ra8_i3c_cmd_hdr_mode_mask | RA8 I3C cmd hdr mode mask. |
Definition at line 237 of file ra8_i3c_regs.h.
| enum ra8_i3c_ibi_status_bits_t : uint32_t |
IBI status descriptor field positions (FSP I3C_IBI_STATUS_DESC_*).
The first word read from NIBIQP is an IBI status descriptor carrying length, IBI ID, error flags, and the IBI/HJ/MR type encoded by IBI_ST. See HUM Ch 40 "IBI Status Descriptor".
Definition at line 377 of file ra8_i3c_regs.h.
| enum ra8_i3c_inst_bits_t : uint32_t |
INST/INSTE/INIE bit positions.
| Enumerator | |
|---|---|
| k_ra8_i3c_inst_inef_mask | Internal Error Flag bit 10. |
Definition at line 283 of file ra8_i3c_regs.h.
| enum ra8_i3c_limits_t : uint8_t |
Reserved-padding word counts for r_i3c_regs_t.
Each padding slot mirrors the FSP R_I3C0_Type RESERVED arrays, named by the register that immediately precedes the gap so that mismatches show up as a typed symbol in compiler errors.
Definition at line 68 of file ra8_i3c_regs.h.
| enum ra8_i3c_misc_t : uint32_t |
Miscellaneous protocol limits.
Definition at line 390 of file ra8_i3c_regs.h.
| enum ra8_i3c_msdvad_bits_t : uint32_t |
MSDVAD register bit positions / masks.
Definition at line 248 of file ra8_i3c_regs.h.
| enum ra8_i3c_nsdvad_bits_t : uint32_t |
NSDVAD (Peripheral Device Address Register) bit positions / masks.
Peripheral-mode counterpart of MSDVAD: SDYAD occupies bits [22:16], SDYADV (bit 31) marks the address as valid. See HUM Ch 40 "Peripheral Device Address Register" pp 2445-2701.
| Enumerator | |
|---|---|
| k_ra8_i3c_nsdvad_sdyad_shift | SDYAD bits [22:16]. |
| k_ra8_i3c_nsdvad_sdyad_mask | RA8 I3C nsdvad sdyad mask. |
| k_ra8_i3c_nsdvad_sdyadv_mask | SDYADV bit 31. |
Definition at line 209 of file ra8_i3c_regs.h.
| enum ra8_i3c_ntibivctl_bits_t : uint32_t |
NTIBIVCTL (IBI Valid Control) field positions.
NTIBIVCTL.VLCNT[7:0] is the valid-entry count programmed by ra8_i3c_ibi_enable. HUM Ch 40 "IBI Valid Control" pp 2445-2701.
| Enumerator | |
|---|---|
| k_ra8_i3c_ntibivctl_vlcnt_mask | Valid-entry count [7:0]. |
| k_ra8_i3c_ntibivctl_vlcnt_shift | RA8 I3C ntibivctl vlcnt shift. |
Definition at line 224 of file ra8_i3c_regs.h.
| enum ra8_i3c_ntst_bits_t : uint32_t |
NTST (Normal Transfer Status) flag positions.
Definition at line 359 of file ra8_i3c_regs.h.
| enum ra8_i3c_offset_t : uint16_t |
FSP-canonical byte offsets used by the layout asserts below.
Definition at line 416 of file ra8_i3c_regs.h.
| enum ra8_i3c_rstctl_bits_t : uint32_t |
RSTCTL register bit positions / masks.
Bring-up sequence per HUM Ch 40 RSTCTL description: assert RI3CRST, wait for hardware to clear it, then optionally assert INTLRST + per-FIFO resets, then clear RSTCTL to release.
Definition at line 264 of file ra8_i3c_regs.h.
|
inlinestatic |
Get pointer to I3C0.
Definition at line 463 of file ra8_i3c_regs.h.
References k_ra8_i3c0_base_addr.
Referenced by ra8_i3c_bus_enable(), ra8_i3c_clear_status(), ra8_i3c_deinit(), ra8_i3c_dispatch(), ra8_i3c_dynamic_address_assign(), ra8_i3c_enter_stop(), ra8_i3c_get_status(), ra8_i3c_ibi_enable(), ra8_i3c_ibi_read(), ra8_i3c_init(), ra8_i3c_read(), ra8_i3c_recv_ccc(), ra8_i3c_reset_dynamic_addresses(), ra8_i3c_send_ccc(), ra8_i3c_set_address(), ra8_i3c_set_dynamic_address(), ra8_i3c_set_hdr_mode(), ra8_i3c_target_open(), and ra8_i3c_write().