Thread (2 messages) flat view 2 messages, 2 authors, 3d ago

[RFC] Appropriate subsystem/UAPI for Semtech SX126x packet radio support

From: i.n.a <hidden>
Date: 2026-09-20 21:15:28

Hi,

I'm working on a general-purpose Linux driver for the Semtech SX126x family of sub-GHz radio transceivers, initially targeting the SX1262.

Semtech provides a portable C driver for the radio, with the platform-specific interface abstracted behind read, write, reset and wakeup operations:

https://github.com/Lora-net/sx126x_driver

I'm currently implementing the Linux side using SPI, GPIO and IRQ infrastructure.

The SX126x supports LoRa and (G)FSK packet modes, but isn't inherently tied to a particular higher-level protocol. My intention is therefore to keep protocols such as LoRaWAN, AX.25 and Reticulum outside the hardware driver and expose generic packet TX/RX, PHY configuration, radio state and receive metadata such as RSSI/SNR.

I was considering exposing the radio as a character device, for example `/dev/sx126x0`, with a small userspace API for configuration and packet I/O. However, before defining an out-of-tree UAPI that may turn out to be the wrong abstraction, I'd appreciate some guidance:

1.  Is there an existing Linux subsystem suitable for this class of packet radio?
2.  If not, would a character device be an appropriate interface, or is there another abstraction I should investigate?
3.  Would it make sense for the hardware driver to remain protocol-agnostic, with networking/protocol interfaces implemented above it?

The aim is for the driver to be generic across SX1261/SX1262/SX1268 hardware rather than tied to a particular board. I'm also interested in supporting different transports where practical; my initial hardware is SPI-connected.

I wanted to ask about the architecture early, before too much code or a userspace ABI becomes established.

Thanks,
Ina
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help