The PR separates the USB device driver from imxrt-ral. With this PR, you may use this driver without adopting the imxrt-ral dependency. The crate builds without any additional features.
Specifics:
Remove imxrt-ral types from the public API. We still depend on imxrt-ral as an implementation detail (for the macros, and register types), but we can do this without enabling any features. We take USB modules from imxrt-ral, and include it in this package. I confirmed that the USB register layouts and address(es) are consistent across all supported i.MX RT chips.
Users can identify their USB register singleton by implementing the unsafe Peripherals trait. The example shows how an imxrt-ral user may safely implement the trait for a USB instance wrapper.
The PR separates the USB device driver from
imxrt-ral
. With this PR, you may use this driver without adopting theimxrt-ral
dependency. The crate builds without any additional features.Specifics:
imxrt-ral
types from the public API. We still depend onimxrt-ral
as an implementation detail (for the macros, and register types), but we can do this without enabling any features. We take USB modules fromimxrt-ral
, and include it in this package. I confirmed that the USB register layouts and address(es) are consistent across all supported i.MX RT chips.Peripherals
trait. The example shows how animxrt-ral
user may safely implement the trait for a USB instance wrapper.Closes #3.