[PATCH v2 0/2] spi: add sysfs interface for userspace device instantiation

Vishwaroop A posted 2 patches 1 month, 3 weeks ago
.../ABI/testing/sysfs-class-spi-master        |  34 ++++
Documentation/spi/index.rst                   |   1 +
Documentation/spi/instantiating-devices.rst   |  88 ++++++++
drivers/spi/spi.c                             | 190 ++++++++++++++++++
include/linux/spi/spi.h                       |  10 +
5 files changed, 323 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-class-spi-master
create mode 100644 Documentation/spi/instantiating-devices.rst
[PATCH v2 0/2] spi: add sysfs interface for userspace device instantiation
Posted by Vishwaroop A 1 month, 3 weeks ago
Development boards such as the Jetson AGX Orin expose SPI buses on
expansion headers so that users can connect and interact with SPI
peripherals from userspace via /dev/spidevB.C character devices.

Today there is no viable upstream mechanism to create these device nodes:

  - The spidev driver rejects the bare "spidev" compatible string in DT,
    since spidev is a Linux software interface, not a hardware description.
  - Vendor-specific compatible strings (e.g. "nvidia,tegra-spidev") have
    been rejected by DT maintainers for the same reason.

The I2C subsystem solved an analogous problem years ago by exposing
new_device/delete_device sysfs attributes on each i2c adapter. This
series adds the same interface to SPI host controllers.

Patch 1 adds the core implementation: new_device and delete_device sysfs
attributes under /sys/class/spi_master/spiB/, allowing userspace to
dynamically instantiate and remove SPI devices at runtime.

Patch 2 adds documentation: an RST guide describing usage, parameters,
examples, and limitations, plus a formal ABI entry.

Link: https://lore.kernel.org/linux-tegra/909f0c92-d110-4253-903e-5c81e21e12c9@nvidia.com/

Changes in v2:
  - Fixed race between new_device_store() and spi_unregister_controller():
    replaced spi_add_device() with direct __spi_add_device() call under
    add_lock so that device registration and userspace_clients list
    insertion are atomic with respect to controller teardown.
    (Mark Brown)

Vishwaroop A (2):
  spi: add new_device/delete_device sysfs interface
  docs: spi: add documentation for userspace device instantiation

 .../ABI/testing/sysfs-class-spi-master        |  34 ++++
 Documentation/spi/index.rst                   |   1 +
 Documentation/spi/instantiating-devices.rst   |  88 ++++++++
 drivers/spi/spi.c                             | 190 ++++++++++++++++++
 include/linux/spi/spi.h                       |  10 +
 5 files changed, 323 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-class-spi-master
 create mode 100644 Documentation/spi/instantiating-devices.rst

-- 
2.17.1
Re: [PATCH v2 0/2] spi: add sysfs interface for userspace device instantiation
Posted by Mark Brown 1 month, 2 weeks ago
On Sat, Apr 25, 2026 at 05:34:23PM +0000, Vishwaroop A wrote:
> Development boards such as the Jetson AGX Orin expose SPI buses on
> expansion headers so that users can connect and interact with SPI
> peripherals from userspace via /dev/spidevB.C character devices.

Please don't send new patches in reply to old patches or serieses, this
makes it harder for both people and tools to understand what is going
on - it can bury things in mailboxes and make it difficult to keep track
of what current patches are, both for the new patches and the old ones.