diff options
Diffstat (limited to 'usbh')
-rw-r--r-- | usbh/src/device.rs | 16 | ||||
-rwxr-xr-x | usbh/src/lib.rs | 4 | ||||
-rw-r--r-- | usbh/src/pipe.rs | 2 |
3 files changed, 13 insertions, 9 deletions
diff --git a/usbh/src/device.rs b/usbh/src/device.rs index bdb993e..e77c9ea 100644 --- a/usbh/src/device.rs +++ b/usbh/src/device.rs @@ -9,6 +9,10 @@ use log::{debug, error, info, trace}; use atsamd_hal::target_device::usb; const MAX_DEVICES: usize = 16; + +// TODO: +// This may be wrong. It may be 15 additional input + 15 additional +// output! cf ยง5.3.1.2 of USB 2.0. const MAX_ENDPOINTS: usize = 16; // How long to wait before talking to the device again after setting @@ -140,7 +144,7 @@ impl Device { let mut vol_descr = ::vcell::VolatileCell::<DeviceDescriptor>::new(Default::default()); - pipe.control_req( + pipe.control_transfer( RequestType::get_descr(), RequestCode::GetDescriptor, WValue::from((0, DescriptorType::Device as u8)), @@ -162,7 +166,7 @@ impl Device { let mut vol_descr = ::vcell::VolatileCell::<ConfigurationDescriptor>::new(Default::default()); - pipe.control_req( + pipe.control_transfer( RequestType::get_descr(), RequestCode::GetDescriptor, WValue::from((0, DescriptorType::Configuration as u8)), @@ -177,7 +181,7 @@ impl Device { assert!(desc.w_total_length < 64); let buf: [u8; 64] = [0; 64]; let mut tmp = &buf[..desc.w_total_length as usize]; - pipe.control_req( + pipe.control_transfer( RequestType::get_descr(), RequestCode::GetDescriptor, WValue::from((0, DescriptorType::Configuration as u8)), @@ -194,7 +198,7 @@ impl Device { debug!("+++ setting configuration"); let conf: u8 = 1; - pipe.control_req( + pipe.control_transfer( RequestType::set(), RequestCode::SetConfiguration, WValue::from((conf, 0)), @@ -205,7 +209,7 @@ impl Device { debug!(" -- configuration set"); debug!("+++ setting idle"); - pipe.control_req( + pipe.control_transfer( RequestType::from(( RequestDirection::HostToDevice, RequestKind::Class, @@ -221,7 +225,7 @@ impl Device { debug!("+++ setting report"); let mut rep_res: u8 = 0; - pipe.control_req( + pipe.control_transfer( RequestType::from(( RequestDirection::HostToDevice, RequestKind::Class, diff --git a/usbh/src/lib.rs b/usbh/src/lib.rs index 70acc31..1cd8a1a 100755 --- a/usbh/src/lib.rs +++ b/usbh/src/lib.rs @@ -360,7 +360,7 @@ where fn configure_dev(&mut self) -> Result<(), PipeErr> { let mut pipe = self.pipe_table.pipe_for(self.usb.host_mut(), 0, 0); let mut vol_descr = ::vcell::VolatileCell::<DeviceDescriptor>::new(Default::default()); - pipe.control_req( + pipe.control_transfer( RequestType::get_descr(), RequestCode::GetDescriptor, WValue::from((0, DescriptorType::Device as u8)), @@ -378,7 +378,7 @@ where Some(device) => { device.max_packet_size = desc.b_max_packet_size; debug!("Setting address to {}.", device.addr); - pipe.control_req( + pipe.control_transfer( RequestType::set(), RequestCode::SetAddress, WValue::from((device.addr, 0)), diff --git a/usbh/src/pipe.rs b/usbh/src/pipe.rs index 835ba86..660a21e 100644 --- a/usbh/src/pipe.rs +++ b/usbh/src/pipe.rs @@ -101,7 +101,7 @@ pub(crate) struct Pipe<'a, 'b> { pub(crate) desc: &'a mut PipeDesc, } impl Pipe<'_, '_> { - pub(crate) fn control_req<T>( + pub(crate) fn control_transfer<T>( &mut self, bm_request_type: RequestType, b_request: RequestCode, |