[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