imxrt-rs / imxrt-hal

Rust for NXP i.MX RT
Apache License 2.0
122 stars 29 forks source link

Backwards compatible eh1 SPI support #163

Open Florob opened 3 weeks ago

Florob commented 3 weeks ago

This adds impls of eh1's SpiBus and SpiDevice traits to Lpspi in a backwards compatible manner. At least I think it is backwards compatible. There are some added and changes trait bounds, but they ought to be equivalent to or slightly more permissive than the preexisting ones. The DelayNs operation is not supported and documented as such, since without breaking changes we have no delay provider available to us. Users that needs it can use embedded-hal-bus in conjunction with the SpiBus impl.

This is probably not where we want to go long term. The Lpspi type needs to change to support multiple chip selects, which will probably create a more natural split between the Bus and the Device trait. However, I think it is beneficial to provide a basic impl to users in the meantime.

Caveat: I've not yet extensively tested this.