On Tue, Jun 04, 2024 at 07:41:47PM -0300, Marcelo Schmitt wrote: > The behavior of an SPI controller data output line (SDO or MOSI or COPI > (Controller Output Peripheral Input) for disambiguation) is not specified > when the controller is not clocking out data on SCLK edges. However, there > exist SPI peripherals that require specific COPI line state when data is > not being clocked out of the controller. This is an optimisation for accelerating devices that need a specific value, really if these devices need a value they should send it. > #define SPI_MOSI_IDLE_LOW _BITUL(17) /* leave mosi line low when idle */ > +#define SPI_MOSI_IDLE_HIGH _BITUL(18) /* leave mosi line high when idle */ Realistically we'll have a large set of drivers that are expecting the line to be held low so I'm not sure we need that option. I would also expect to have an implementation of these options in the core which supplies buffers with the relevant data for use with controllers that don't have the feature (similar to how _MUST_TX and _MUST_RX are done). Even without that we'd need feature detection so that drivers that try to use this aren't just buggy when used with a controller that doesn't implement it, but once you're detecting you may as well just make things work.
Attachment:
signature.asc
Description: PGP signature