docs: embassy-rp rustdoc and refactoring
This commit is contained in:
@ -20,7 +20,9 @@ pub(crate) mod sealed {
|
||||
}
|
||||
}
|
||||
|
||||
/// USB peripheral instance.
|
||||
pub trait Instance: sealed::Instance + 'static {
|
||||
/// Interrupt for this peripheral.
|
||||
type Interrupt: interrupt::typelevel::Interrupt;
|
||||
}
|
||||
|
||||
@ -96,6 +98,7 @@ impl EndpointData {
|
||||
}
|
||||
}
|
||||
|
||||
/// RP2040 USB driver handle.
|
||||
pub struct Driver<'d, T: Instance> {
|
||||
phantom: PhantomData<&'d mut T>,
|
||||
ep_in: [EndpointData; EP_COUNT],
|
||||
@ -104,6 +107,7 @@ pub struct Driver<'d, T: Instance> {
|
||||
}
|
||||
|
||||
impl<'d, T: Instance> Driver<'d, T> {
|
||||
/// Create a new USB driver.
|
||||
pub fn new(_usb: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>>) -> Self {
|
||||
T::Interrupt::unpend();
|
||||
unsafe { T::Interrupt::enable() };
|
||||
@ -240,6 +244,7 @@ impl<'d, T: Instance> Driver<'d, T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// USB interrupt handler.
|
||||
pub struct InterruptHandler<T: Instance> {
|
||||
_uart: PhantomData<T>,
|
||||
}
|
||||
@ -342,6 +347,7 @@ impl<'d, T: Instance> driver::Driver<'d> for Driver<'d, T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Type representing the RP USB bus.
|
||||
pub struct Bus<'d, T: Instance> {
|
||||
phantom: PhantomData<&'d mut T>,
|
||||
ep_out: [EndpointData; EP_COUNT],
|
||||
@ -461,6 +467,7 @@ trait Dir {
|
||||
fn waker(i: usize) -> &'static AtomicWaker;
|
||||
}
|
||||
|
||||
/// Type for In direction.
|
||||
pub enum In {}
|
||||
impl Dir for In {
|
||||
fn dir() -> Direction {
|
||||
@ -473,6 +480,7 @@ impl Dir for In {
|
||||
}
|
||||
}
|
||||
|
||||
/// Type for Out direction.
|
||||
pub enum Out {}
|
||||
impl Dir for Out {
|
||||
fn dir() -> Direction {
|
||||
@ -485,6 +493,7 @@ impl Dir for Out {
|
||||
}
|
||||
}
|
||||
|
||||
/// Endpoint for RP USB driver.
|
||||
pub struct Endpoint<'d, T: Instance, D> {
|
||||
_phantom: PhantomData<(&'d mut T, D)>,
|
||||
info: EndpointInfo,
|
||||
@ -616,6 +625,7 @@ impl<'d, T: Instance> driver::EndpointIn for Endpoint<'d, T, In> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Control pipe for RP USB driver.
|
||||
pub struct ControlPipe<'d, T: Instance> {
|
||||
_phantom: PhantomData<&'d mut T>,
|
||||
max_packet_size: u16,
|
||||
|
Reference in New Issue
Block a user