Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SPI driver



On Thu, 7 Feb 2019, Michael van Elst wrote:
I've written a userland interface to our spi(4) driver.

Neat. I'm interested in SPI, but pardon me if I am a bit ignorant. If you don't have time to answer it's no problem.

crw-------  1 root  wheel  346, 0 Jan  5 16:02 /dev/spi0

I assume there is no concept of a block-mode for SPI, directly. It's only a transport like I2C or JTAG right? Don't SD cards use it for IO or something related ?

SPI_IOCTL_CONFIGURE calls spi_configure() to chose operational mode and clock.

I see the struct sets a clock in Hz. Is SPI always synchronous ? Can one vary the clock frequency ? Is there a way to sense what the other side will max out at ? How can one know the width of data-bits in a cycle or does it not matter and you just set sendlen & recvlen and not worry about it ?

The interface is different from spigen(4) used by FreeBSD and also different from an early example of an SPI driver by Jonathan Kollasch.

Why didn't you just steal it? I'm kidding, but still a bit curious.

As there is no kind of session handling,

Is SPI meant to be stateful but the driver can't do it yet or is that just how SPI works intrinsically ? Isn't it kinda low level bit-banging stuff where you control which wire is doing what and who's on edge vs level etc... ? So, you're saying "sessions" are just the responsibility of the user/implementer, right ?

Thanks for your hard work, Michael.

-Swift


Home | Main Index | Thread Index | Old Index