Issue
In the present definition is of flushing of Spi is required that the transmit FIFO is empty and no activity in the bus.
This definition doesn't require explicitly that also the receive FIFO shall be empty.
This create an issue when using pipelined write operation.
It is already happened that a fully complaint implementation of SpiBus::flush operation caused a shift on read operation after write operation because the read FIFO is not empty.
see atsamd-rs/atsamd#1007 for an example
Proposal
Make explicit that SpiBus flush requires empty read FIFO too.
Issue
In the present definition is of flushing of Spi is required that the transmit FIFO is empty and no activity in the bus.
This definition doesn't require explicitly that also the receive FIFO shall be empty.
This create an issue when using pipelined write operation.
It is already happened that a fully complaint implementation of SpiBus::flush operation caused a shift on read operation after write operation because the read FIFO is not empty.
see atsamd-rs/atsamd#1007 for an example
Proposal
Make explicit that SpiBus flush requires empty read FIFO too.