ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ux_dcd_ra8_usb.h
Go to the documentation of this file.
1
51
52#pragma once
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58#include "ra8_usb.h"
59
60/* USBX pulls in tx_api.h via ux_port.h; we forward-declare what we
61 * touch so this header stays cheap to include from non-USBX TUs. */
62struct UX_SLAVE_DCD_STRUCT;
63struct UX_SLAVE_TRANSFER_STRUCT;
64struct UX_SLAVE_ENDPOINT_STRUCT;
65
75
83typedef enum : uint8_t {
86
116
131[[nodiscard]] ra8_err_t ux_dcd_ra8_usb_uninitialize(void);
132
159void ux_dcd_ra8_usb_irq(ra8_usb_speed_t speed, uint16_t intsts0);
160
180
207void ux_dcd_ra8_usb_auto_echo_enable(uint8_t out_pipe, uint8_t in_pipe);
208
226
227/* Internal dispatcher exposed for direct invocation from
228 * ``_ux_dcd_ra8_usb_initialize`` (in the .c file) and for unit tests. */
250unsigned int
251_ux_dcd_ra8_usb_function(struct UX_SLAVE_DCD_STRUCT* dcd, unsigned int function, void* parameter);
252
253#ifdef __cplusplus
254}
255#endif
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Native USB controller driver public API (device + host modes).
ra8_usb_speed_t
Selects which controller instance the call targets.
void ux_dcd_ra8_usb_irq_reenable(void)
Re-enable the USB NVIC IRQ at the controller level.
ra8_usb_dcd_state_t ux_dcd_ra8_usb_state(void)
Read the bridge run-state.
void ux_dcd_ra8_usb_irq(ra8_usb_speed_t speed, uint16_t intsts0)
ISR-context bottom-half.
ra8_usb_dcd_limits_t
Compile-time sizing of the bridge.
@ k_ux_dcd_ra8_usb_max_pipes
DCP + 9 PIPE entries (HUM 36.1).
void ux_dcd_ra8_usb_auto_echo_enable(uint8_t out_pipe, uint8_t in_pipe)
Enable ISR-side auto-echo from a bulk OUT pipe to a bulk IN pipe.
unsigned int _ux_dcd_ra8_usb_function(struct UX_SLAVE_DCD_STRUCT *dcd, unsigned int function, void *parameter)
ux dcd ra usb function.
ra8_err_t ux_dcd_ra8_usb_initialize(ra8_usb_speed_t speed)
Register the ra8_usb bridge as the active USBX DCD.
ra8_usb_dcd_state_t
Run-state of the DCD bridge.
@ k_ux_dcd_ra8_usb_state_ready
Bridge installed; bus idle.
@ k_ux_dcd_ra8_usb_state_active
Class-layer transfers active.
@ k_ux_dcd_ra8_usb_state_uninit
Bridge not yet initialized.
ra8_err_t ux_dcd_ra8_usb_uninitialize(void)
Tear down the ra8_usb DCD bridge.