diff options
Diffstat (limited to 'usbh/src/device.rs')
-rw-r--r-- | usbh/src/device.rs | 16 |
1 files changed, 10 insertions, 6 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, |