87typedef enum : uintptr_t {
88#ifdef RA8_PERIPH_NS_ALIAS
106typedef enum : uint8_t {
189typedef enum : uint16_t {
239typedef enum : uint16_t {
258 "r_usb_regs_t window size must be 0x082 bytes (PIPECTR[9] end)");
308 "PIPECTR base offset");
311 "PIPECTR array spans PIPE1..PIPE9 (9 * 2 bytes)");
347typedef enum : uint16_t {
378typedef enum : uint16_t {
394typedef enum : uint16_t {
402typedef enum : uint16_t {
415typedef enum : uint16_t {
428typedef enum : uint8_t {
447typedef enum : uint8_t {
466typedef enum : uint8_t {
480typedef enum : uint16_t {
498typedef enum : uint16_t {
512typedef enum : uint16_t {
527typedef enum : uint16_t {
546typedef enum : uint8_t {
568typedef enum : uint8_t {
577typedef enum : uint16_t {
593typedef enum : uint16_t {
616typedef enum : uint16_t {
632typedef enum : uint16_t {
645typedef enum : uint16_t {
672typedef enum : uint16_t {
688typedef enum : uint16_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
static volatile uint16_t * ra8_usbhs_lpsts(void)
Get pointer to USBHS LPSTS register.
ra8_usb_intsts1_bit_t
INTSTS1 / INTENB1 host-mode bit positions (HUM Ch 36.2.11/15).
@ k_ra8_int1_bit_eoferr
EOF error detected.
@ k_ra8_int1_bit_dtch
Device detach detected.
@ k_ra8_int1_bit_attch
Device attach detected.
@ k_ra8_int1_bit_bchg
Bus change.
@ k_ra8_int1_bit_sign
SETUP transaction failed (3x).
@ k_ra8_int1_bit_sack
SETUP transaction ACKed.
@ k_ra8_int1_bit_ovrcr
Overcurrent input change.
ra8_usb_pipectr_bit_t
PIPECTR bit positions / fields used by the driver.
@ k_ra8_pipectr_sqset
Toggle set.
@ k_ra8_pipectr_inbufm
IN buffer monitor.
@ k_ra8_pipectr_aclrm
Auto buffer clear mode.
@ k_ra8_pipectr_pbusy
Pipe busy (read-only).
@ k_ra8_pipectr_sqclr
Toggle clear.
@ k_ra8_pipectr_bsts
Buffer status.
@ k_ra8_pipectr_sqmon
Toggle monitor.
@ k_ra8_pipectr_atrepm
Auto response mode.
@ k_ra8_pipectr_pid_mask
PID[1:0] response field.
ra8_usbhs_lpsts_bit_t
LPSTS bit positions (HUM Ch 37 "LPSTS" register).
@ k_ra8_lpsts_suspendm
b14: UTMI SuspendM (1=run).
ra8_usbhs_pllsta_bit_t
PLLSTA bit positions (HUM Ch 37 "PLLSTA" register).
@ k_ra8_pllsta_plllock
b0 : PHY PLL locked flag.
ra8_usbhs_physet_bit_t
PHYSET bit positions and masks (HUM Ch 37 "PHYSET" register).
@ k_ra8_physet_clksel
b5-4: input clock select mask.
@ k_ra8_physet_hseb
b15 : CL-only mode.
@ k_ra8_physet_pllreset
b1 : PHY PLL reset.
@ k_ra8_physet_clksel_48
b5-4 = 01b: 48 MHz reference.
@ k_ra8_physet_clksel_12
b5-4 = 00b: 12 MHz reference.
@ k_ra8_physet_repsel_16
b9-8: 16-cycle terminator.
@ k_ra8_physet_clksel_20
b5-4 = 10b: 20 MHz reference.
@ k_ra8_physet_clksel_24
b5-4 = 11b: 24 MHz reference.
@ k_ra8_physet_dirpd
b0 : PHY power-down (1=PD).
ra8_usb_pid_t
Response PID values written into the low two bits of DCPCTR / PIPECTR.
@ k_ra8_pid_buf
BUF response (transmit/receive).
@ k_ra8_pid_nak
NAK response.
@ k_ra8_pid_mask
PID[1:0] field mask.
@ k_ra8_pid_stall
STALL response.
ra8_usb_syscfg_bit_t
SYSCFG bit positions.
@ k_ra8_syscfg_bit_dprpu
D+ pull-up enable (device).
@ k_ra8_syscfg_bit_usbe
USB module enable.
@ k_ra8_syscfg_bit_cnen
Single-end receiver enable.
@ k_ra8_syscfg_bit_hse
HS enable (HS instance only).
@ k_ra8_syscfg_bit_drpd
D+/D- pull-down (host).
@ k_ra8_syscfg_bit_dcfm
1 = host mode, 0 = device.
@ k_ra8_syscfg_bit_scke
USB clock enable.
ra8_usb_intenb0_mask_t
INTENB0 aggregate masks (HUM Ch 36.2.10 p 1980).
@ k_ra8_int0_full_mask
Device-mode event mask: BRDY | NRDY | BEMP | CTRT | DVST | VBSE.
static volatile uint16_t * ra8_usbhs_physet(void)
Get pointer to USBHS PHYSET register.
static volatile uint16_t * ra8_usbhs_pllsta(void)
Get pointer to USBHS PLLSTA register (read-only).
ra8_usb_offset_t
Byte offsets of the named USB register fields within r_usb_regs_t.
@ k_ra8_usb_off_brdyenb
BRDYENB : BRDY Enable.
@ k_ra8_usb_off_d1fifo
D1FIFO : DMA FIFO 1 port.
@ k_ra8_usb_off_pipecfg
PIPECFG : Selected pipe cfg.
@ k_ra8_usb_off_pipectr
PIPECTR : PIPE1..9 control.
@ k_ra8_usb_off_syssts0
SYSSTS0 : System status 0.
@ k_ra8_usb_off_usbleng
USBLENG : USB request wLength.
@ k_ra8_usb_off_dvstctr0
DVSTCTR0 : Device state ctrl.
@ k_ra8_usb_off_d0fifosel
D0FIFOSEL : DMA FIFO 0 select.
@ k_ra8_usb_off_usbindx
USBINDX : USB request wIndex.
@ k_ra8_usb_off_d0fifoctr
D0FIFOCTR : DMA FIFO 0 control.
@ k_ra8_usb_off_nrdysts
NRDYSTS : NRDY Status.
@ k_ra8_usb_off_bempenb
BEMPENB : BEMP Enable.
@ k_ra8_usb_off_usbaddr
USBADDR : USB address.
@ k_ra8_usb_off_pipebuf
PIPEBUF : Selected pipe buf.
@ k_ra8_usb_off_usbval
USBVAL : USB request wValue.
@ k_ra8_usb_off_d1fifosel
D1FIFOSEL : DMA FIFO 1 select.
@ k_ra8_usb_off_cfifosel
CFIFOSEL : Control FIFO select.
@ k_ra8_usb_off_d1fifoctr
D1FIFOCTR : DMA FIFO 1 control.
@ k_ra8_usb_off_d0fifo
D0FIFO : DMA FIFO 0 port.
@ k_ra8_usb_off_bempsts
BEMPSTS : BEMP Status.
@ k_ra8_usb_off_intsts1
INTSTS1 : Interrupt Status 1.
@ k_ra8_usb_off_intenb1
INTENB1 : Interrupt Enable 1.
@ k_ra8_usb_off_pipeperi
PIPEPERI : Selected pipe period.
@ k_ra8_usb_off_dcpmaxp
DCPMAXP : DCP max packet.
@ k_ra8_usb_off_nrdyenb
NRDYENB : NRDY Enable.
@ k_ra8_usb_off_cfifo
CFIFO : Control FIFO port.
@ k_ra8_usb_off_dcpctr
DCPCTR : DCP control.
@ k_ra8_usb_off_intsts0
INTSTS0 : Interrupt Status 0.
@ k_ra8_usb_off_usbreq
USBREQ : USB request type.
@ k_ra8_usb_off_pipemaxp
PIPEMAXP : Selected pipe maxp.
@ k_ra8_usb_off_brdysts
BRDYSTS : BRDY Status.
@ k_ra8_usb_off_pipesel
PIPESEL : Pipe window select.
@ k_ra8_usb_off_cfifoctr
CFIFOCTR : Control FIFO control.
@ k_ra8_usb_off_intenb0
INTENB0 : Interrupt Enable 0.
@ k_ra8_usb_off_dcpcfg
DCPCFG : DCP configuration.
@ k_ra8_usb_off_buswait
BUSWAIT : CPU bus wait.
@ k_ra8_usb_off_sofcfg
SOFCFG : SOF Output Config.
@ k_ra8_usb_off_syscfg
SYSCFG : System config.
@ k_ra8_usb_off_frmnum
FRMNUM : Frame number.
ra8_usb_fifoctr_field_t
CFIFOCTR / DxFIFOCTR field masks.
@ k_ra8_fifoctr_frdy
FIFO ready.
@ k_ra8_fifoctr_bclr
Buffer clear.
@ k_ra8_fifoctr_dtln
Data length (write-bytes-rem).
@ k_ra8_fifoctr_bval
Buffer valid.
ra8_usb_dcpctr_bit_t
DCPCTR bit positions used by the device-mode driver.
@ k_ra8_dcpctr_bit_sureq
Send USB request (host mode).
@ k_ra8_dcpctr_bit_sqset
Sequence toggle set.
@ k_ra8_dcpctr_bit_pbusy
Pipe busy.
@ k_ra8_dcpctr_bit_bsts
Buffer status.
@ k_ra8_dcpctr_bit_sqclr
Sequence toggle clear.
@ k_ra8_dcpctr_bit_sqmon
Sequence toggle monitor.
@ k_ra8_dcpctr_bit_ccpl
Control transfer end enable.
@ k_ra8_dcpctr_bit_sureqclr
SUREQ clear (USBHS host only).
@ k_ra8_dcpctr_bit_pid_hi
PID[1].
@ k_ra8_dcpctr_bit_pid_lo
PID[0] (NAK / BUF / STALL).
ra8_usb_pipebuf_field_t
PIPEBUF field masks / shifts.
@ k_ra8_pipebuf_block_bytes
Each buffer block is 64 bytes.
@ k_ra8_pipebuf_bufsize_shift
RA8 pipebuf bufsize shift.
@ k_ra8_pipebuf_bufnmb_mask
RA8 pipebuf bufnmb mask.
@ k_ra8_pipebuf_bufsize_mask
RA8 pipebuf bufsize mask.
ra8_usb_dcpcfg_bit_t
DCPCFG bit positions used by the control-transfer engine.
@ k_ra8_dcpcfg_bit_dir
Transfer direction (host: 0 = IN, 1 = OUT).
ra8_usb_addr_field_t
USBADDR field masks.
@ k_ra8_usbaddr_addr_mask
7-bit USB address [6:0].
ra8_usb_fifosel_field_t
CFIFOSEL / DxFIFOSEL field masks.
@ k_ra8_fifosel_rcnt
Read count mode.
@ k_ra8_fifosel_mbw_msk
MBW field mask.
@ k_ra8_fifosel_bigend
Big-endian access.
@ k_ra8_fifosel_dreqe
DREQ enable (DMA).
@ k_ra8_fifosel_mbw_32
32-bit FIFO access width.
@ k_ra8_fifosel_mbw_8
8-bit FIFO access width.
@ k_ra8_fifosel_isel
CFIFO direction (DCP only).
@ k_ra8_fifosel_mbw_16
16-bit FIFO access width.
@ k_ra8_fifosel_rew
Buffer rewind.
@ k_ra8_fifosel_curpipe
Current pipe select [3:0].
@ k_ra8_fifosel_dclrm
Auto FIFO clear mode.
ra8_usb_size_t
Total byte size of the modelled USB register window.
@ k_ra8_usb_window_bytes
0x070 + (9 * 2) = 0x082 bytes.
ra8_usb_ctsq_t
Control-transfer-stage values reported in INTSTS0.CTSQ[2:0].
@ k_ra8_ctsq_sqer
Sequence error.
@ k_ra8_ctsq_rdss
Control read status stage.
@ k_ra8_ctsq_rdds
Control read data stage.
@ k_ra8_ctsq_wrss
Control write status stage.
@ k_ra8_ctsq_idle
Idle / setup stage end.
@ k_ra8_ctsq_wrds
Control write data stage.
@ k_ra8_ctsq_wrnd
Control write nodata status.
static volatile r_usb_regs_t * ra8_usb_hs(void)
Get pointer to the USB HS controller register block.
ra8_usb_pipecfg_field_t
PIPECFG field masks / shifts used by the driver.
@ k_ra8_pipecfg_epnum_mask
Endpoint number [3:0].
@ k_ra8_pipecfg_dir_in
1 = IN, 0 = OUT (peri).
@ k_ra8_pipecfg_type_intr
Type = interrupt.
@ k_ra8_pipecfg_dblb
Double-buffer mode.
@ k_ra8_pipecfg_shtnak
Auto NAK on short pkt.
@ k_ra8_pipecfg_type_bulk
Type = bulk.
@ k_ra8_pipecfg_type_iso
Type = isochronous.
@ k_ra8_pipecfg_type_mask
Type field mask.
@ k_ra8_pipecfg_bfre
BRDY notify on read end.
ra8_usb_intsts0_mask_t
INTSTS0 multi-bit field masks.
@ k_ra8_intsts0_mask_dvsq
Device state.
@ k_ra8_intsts0_mask_valid
SETUP packet detect flag.
@ k_ra8_intsts0_mask_vbsts
VBUS input port level.
@ k_ra8_intsts0_mask_ctsq
Control transfer stage.
ra8_usb_intenb0_bit_t
INTENB0 / INTSTS0 bit positions (the layouts match).
@ k_ra8_int0_bit_bemp
Buffer-empty interrupt.
@ k_ra8_int0_bit_dvst
Device-state transition.
@ k_ra8_int0_bit_brdy
Buffer-ready interrupt.
@ k_ra8_int0_bit_ctrt
Control-transfer-stage transition.
@ k_ra8_int0_bit_sofr
Start-of-Frame.
@ k_ra8_int0_bit_vbse
VBUS change.
@ k_ra8_int0_bit_nrdy
Buffer-not-ready interrupt.
@ k_ra8_int0_bit_rsme
Resume.
ra8_usb_addr_t
Per-instance base addresses for the two USB controllers.
@ k_ra8_usb_hs0_base_addr
USB High-Speed base.
@ k_ra8_usb_fs0_base_addr
USB Full-Speed base.
ra8_usb_dvsq_t
Device-state values reported in INTSTS0.DVSQ[2:0].
@ k_ra8_dvsq_suspend
Suspended (any sub-state).
@ k_ra8_dvsq_address
Address assigned.
@ k_ra8_dvsq_default
Default (post bus reset).
@ k_ra8_dvsq_configured
Configured.
@ k_ra8_dvsq_powered
Powered (no reset yet).
ra8_usb_limits_t
Pipe / endpoint count constants.
@ k_ra8_usb_pad_5
Reserved length (5 hwords).
@ k_ra8_usb_dcp_max_packet_fs
EP0 max packet at FS / HS-FS.
@ k_ra8_usb_pipectr_count
PIPECTR[9] = PIPE1..PIPE9.
@ k_ra8_usb_pad_3
Reserved length (3 hwords).
@ k_ra8_usb_pad_8
Reserved length (8 hwords).
@ k_ra8_usb_pipe_count
DCP (pipe 0) + PIPE1..PIPE9.
@ k_ra8_usb_pad_2
Reserved length (2 hwords).
static volatile r_usb_regs_t * ra8_usb_fs(void)
Compile-time offset and size insurance for r_usb_regs_t.
ra8_usbhs_offset_t
Byte offsets of USBHS-only registers not modelled in r_usb_regs_t.
@ k_ra8_usbhs_off_lpsts
LPSTS : SUSPENDM gate.
@ k_ra8_usbhs_off_physet
PHYSET : embedded-PHY setup.
@ k_ra8_usbhs_off_pllsta
PLLSTA : PLL lock flag.
ra8_usbhs_buswait_t
BUSWAIT canonical value (HUM Ch 37 "BUSWAIT").
@ k_ra8_buswait_default
4-wait + b11-b8 reserved-write.
USB FS / HS register window (device-mode subset).
volatile uint16_t D1FIFOCTR
+0x02E DMA FIFO 1 control.
volatile uint16_t USBINDX
+0x058 USB Request wIndex.
volatile uint16_t NRDYENB
+0x038 NRDY Interrupt Enable.
volatile uint16_t DCPCTR
+0x060 DCP Control.
volatile uint16_t USBVAL
+0x056 USB Request wValue.
volatile uint16_t CFIFOCTR
+0x022 Control FIFO control.
volatile uint16_t CFIFOSEL
+0x020 Control FIFO select.
volatile uint16_t DCPMAXP
+0x05E DCP Max Packet.
volatile uint16_t USBADDR
+0x050 USB Address.
volatile uint16_t PIPECTR[k_ra8_usb_pipectr_count]
+0x070 PIPE1..9 ctrl.
volatile uint16_t _r6
+0x034 Reserved.
volatile uint16_t _r4
+0x01E Reserved.
volatile uint16_t CFIFO
+0x014 Control FIFO data port.
volatile uint16_t INTENB0
+0x030 Interrupt Enable 0.
volatile uint16_t INTSTS0
+0x040 Interrupt Status 0.
volatile uint16_t PIPEPERI
+0x06E Selected pipe period.
volatile uint16_t USBLENG
+0x05A USB Request wLength.
volatile uint16_t SYSCFG
+0x000 System Configuration.
volatile uint16_t SYSSTS0
+0x004 System Status 0.
volatile uint16_t DVSTCTR0
+0x008 Device State Control.
volatile uint16_t SOFCFG
+0x03C SOF Output Configuration.
volatile uint16_t BRDYENB
+0x036 BRDY Interrupt Enable.
volatile uint16_t PIPEMAXP
+0x06C Selected pipe max packet.
volatile uint16_t _r9
+0x04E Reserved.
volatile uint16_t BEMPSTS
+0x04A BEMP Interrupt Status.
volatile uint16_t _r2
+0x016 Reserved.
volatile uint16_t PIPEBUF
+0x06A Selected pipe buffer.
volatile uint16_t PIPECFG
+0x068 Selected pipe config.
volatile uint16_t INTSTS1
+0x042 Interrupt Status 1.
volatile uint16_t BUSWAIT
+0x002 CPU bus wait.
volatile uint16_t FRMNUM
+0x04C Frame Number.
volatile uint16_t D1FIFO
+0x01C DMA FIFO 1 data port.
volatile uint16_t INTENB1
+0x032 Interrupt Enable 1.
volatile uint16_t DCPCFG
+0x05C DCP Configuration.
volatile uint16_t D0FIFOSEL
+0x028 DMA FIFO 0 select.
volatile uint16_t NRDYSTS
+0x048 NRDY Interrupt Status.
volatile uint16_t D0FIFOCTR
+0x02A DMA FIFO 0 control.
volatile uint16_t BEMPENB
+0x03A BEMP Interrupt Enable.
volatile uint16_t PIPESEL
+0x064 Pipe window select.
volatile uint16_t _rc
+0x066 Reserved.
volatile uint16_t _r7
+0x03E Reserved.
volatile uint16_t _r3
+0x01A Reserved.
volatile uint16_t _r5[k_ra8_usb_pad_2]
Reserved.
volatile uint16_t _rb
+0x062 Reserved.
volatile uint16_t _r8
+0x044 Reserved.
volatile uint16_t BRDYSTS
+0x046 BRDY Interrupt Status.
volatile uint16_t D0FIFO
+0x018 DMA FIFO 0 data port.
volatile uint16_t D1FIFOSEL
+0x02C DMA FIFO 1 select.
volatile uint16_t _r1[k_ra8_usb_pad_5]
Reserved.
volatile uint16_t USBREQ
+0x054 USB Request type/bRequest.
volatile uint16_t _ra
+0x052 Reserved.
volatile uint16_t _r0
+0x006 Reserved.