mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-25 08:12:30 +00:00
Hide the Dir trait
This commit is contained in:
parent
91c42e0b9e
commit
50aefb4174
@ -161,7 +161,7 @@ impl<'d, T: Instance> embassy_usb_driver::Driver<'d> for Driver<'d, T> {
|
|||||||
max_packet_size: u16,
|
max_packet_size: u16,
|
||||||
interval_ms: u8,
|
interval_ms: u8,
|
||||||
) -> Result<Self::EndpointIn, EndpointAllocError> {
|
) -> Result<Self::EndpointIn, EndpointAllocError> {
|
||||||
self.inner.alloc_endpoint(ep_type, max_packet_size, interval_ms)
|
self.inner.alloc_endpoint_in(ep_type, max_packet_size, interval_ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn alloc_endpoint_out(
|
fn alloc_endpoint_out(
|
||||||
@ -170,7 +170,7 @@ impl<'d, T: Instance> embassy_usb_driver::Driver<'d> for Driver<'d, T> {
|
|||||||
max_packet_size: u16,
|
max_packet_size: u16,
|
||||||
interval_ms: u8,
|
interval_ms: u8,
|
||||||
) -> Result<Self::EndpointOut, EndpointAllocError> {
|
) -> Result<Self::EndpointOut, EndpointAllocError> {
|
||||||
self.inner.alloc_endpoint(ep_type, max_packet_size, interval_ms)
|
self.inner.alloc_endpoint_out(ep_type, max_packet_size, interval_ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn start(self, control_max_packet_size: u16) -> (Self::Bus, Self::ControlPipe) {
|
fn start(self, control_max_packet_size: u16) -> (Self::Bus, Self::ControlPipe) {
|
||||||
|
@ -276,7 +276,7 @@ impl Default for Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// USB driver.
|
/// USB OTG driver.
|
||||||
pub struct Driver<'d> {
|
pub struct Driver<'d> {
|
||||||
config: Config,
|
config: Config,
|
||||||
ep_in: [Option<EndpointData>; MAX_EP_COUNT],
|
ep_in: [Option<EndpointData>; MAX_EP_COUNT],
|
||||||
@ -287,13 +287,15 @@ pub struct Driver<'d> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'d> Driver<'d> {
|
impl<'d> Driver<'d> {
|
||||||
/// Initializes USB OTG peripheral.
|
/// Initializes the USB OTG peripheral.
|
||||||
///
|
///
|
||||||
/// # Arguments
|
/// # Arguments
|
||||||
///
|
///
|
||||||
/// * `ep_out_buffer` - An internal buffer used to temporarily store received packets.
|
/// * `ep_out_buffer` - An internal buffer used to temporarily store received packets.
|
||||||
/// Must be large enough to fit all OUT endpoint max packet sizes.
|
/// Must be large enough to fit all OUT endpoint max packet sizes.
|
||||||
/// Endpoint allocation will fail if it is too small.
|
/// Endpoint allocation will fail if it is too small.
|
||||||
|
/// * `instance` - The USB OTG peripheral instance and its configuration.
|
||||||
|
/// * `config` - The USB driver configuration.
|
||||||
pub fn new(ep_out_buffer: &'d mut [u8], instance: OtgInstance<'d>, config: Config) -> Self {
|
pub fn new(ep_out_buffer: &'d mut [u8], instance: OtgInstance<'d>, config: Config) -> Self {
|
||||||
Self {
|
Self {
|
||||||
config,
|
config,
|
||||||
@ -305,13 +307,13 @@ impl<'d> Driver<'d> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns total amount of words (u32) allocated in dedicated FIFO
|
/// Returns the total amount of words (u32) allocated in dedicated FIFO.
|
||||||
fn allocated_fifo_words(&self) -> u16 {
|
fn allocated_fifo_words(&self) -> u16 {
|
||||||
self.instance.extra_rx_fifo_words + ep_fifo_size(&self.ep_out) + ep_fifo_size(&self.ep_in)
|
self.instance.extra_rx_fifo_words + ep_fifo_size(&self.ep_out) + ep_fifo_size(&self.ep_in)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates an [`Endpoint`] with the given parameters.
|
/// Creates an [`Endpoint`] with the given parameters.
|
||||||
pub fn alloc_endpoint<D: Dir>(
|
fn alloc_endpoint<D: Dir>(
|
||||||
&mut self,
|
&mut self,
|
||||||
ep_type: EndpointType,
|
ep_type: EndpointType,
|
||||||
max_packet_size: u16,
|
max_packet_size: u16,
|
||||||
@ -919,7 +921,7 @@ impl<'d> embassy_usb_driver::Bus for Bus<'d> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// USB endpoint direction.
|
/// USB endpoint direction.
|
||||||
pub trait Dir {
|
trait Dir {
|
||||||
/// Returns the direction value.
|
/// Returns the direction value.
|
||||||
fn dir() -> Direction;
|
fn dir() -> Direction;
|
||||||
}
|
}
|
||||||
@ -1279,7 +1281,7 @@ fn ep0_mpsiz(max_packet_size: u16) -> u16 {
|
|||||||
// Using OtgInstance::ENDPOINT_COUNT requires feature(const_generic_expr) so just define maximum eps
|
// Using OtgInstance::ENDPOINT_COUNT requires feature(const_generic_expr) so just define maximum eps
|
||||||
pub const MAX_EP_COUNT: usize = 9;
|
pub const MAX_EP_COUNT: usize = 9;
|
||||||
|
|
||||||
/// USB instance.
|
/// Hardware-dependent USB IP configuration.
|
||||||
pub struct OtgInstance<'d> {
|
pub struct OtgInstance<'d> {
|
||||||
/// The USB peripheral.
|
/// The USB peripheral.
|
||||||
pub regs: Otg,
|
pub regs: Otg,
|
||||||
|
Loading…
Reference in New Issue
Block a user