Re: [RFC PATCH v3 3/3] SPI: Add virtio SPI driver.

Harald Mommer
2024-02-26T10:42:00Z

Hello Haixu,

I was on vacation, therefore no immediate answer. I should not forget to
set an OOO reply before going to vacation.

On 20.02.24 09:30, Haixu Cui wrote:
>
> Hello Harald,
>
>     Do you add the "spi-virtio" in spidev_spi_ids in spidev.c when you
> doing the tests? And any other method to expose the spidev interface
> to userspace?
>
>> +static struct spi_board_info board_info = {
>> +    .modalias = "spi-virtio",
>> +};
>> +

I've a udev rule 50-spi-virtio.rules installed which does the job:

# Bind spi-virtio device spiB.C to user mode SPI device /dev/spidevB.C
# Requires spi driver_override sysfs entry (Linux version 4.20+ and later)
#
# See also
https://www.mail-archive.com/debian-arm@lists.debian.org/msg22090.html
# and Documentation/spi/spidev.rst
#
#ACTION=="add", SUBSYSTEM=="spi", ENV{MODALIAS}=="spi:spi-virtio",
PROGRAM+="/bin/sh -c 'echo spidev > %S%p/driver_override && echo %k >
%S%p/subsystem/drivers/spidev/bind"
ACTION=="add", SUBSYSTEM=="spi", ENV{MODALIAS}=="spi:spi-virtio",
PROGRAM+="/bin/sh -c 'echo spidev > %S%p/driver_override && echo %k >
%S/bus/spi/drivers/spidev/bind"

There are no other kernel changes.

However for ancient Linux 4.14 there is no udev rule and the board_info
looks, there

.modalias = "spidev", /* Must be "spidev" for user mode SPI */

but this is only for old kernels we're still using in some setup and
this is irrelevant at latest with 5.14.14 where was a documentation
update of Documentation/spi/spidev.rst.

Regards
Harald Mommer