On Thursday 15 January 2026 16:57:53 Central European Standard Time Damien Riégel wrote:
Hi,
This patchset brings support for Silicon Labs' CPC protocol as transport layer for Greybus. This is introduced as a module that sits between Greybus and CPC Host Device Drivers implementations, like SDIO or SPI. This patchset includes SDIO as physical layer.
+----------------------------------------------------+ | Greybus | +----------------------------------------------------+ /|\ | \|/ +----------------------------------------------------+ | CPC | +----------------------------------------------------+ /|\ /|\ /|\ | | | \|/ \|/ \|/ +----------+ +---------+ +-----------+ | SDIO | | SPI | | Others | +----------+ +---------+ +-----------+CPC implements some of the features of Unipro that Greybus relies upon, like reliable transmission. CPC takes care of detecting transmission errors and retransmit frames if necessary, but that feature is not part of the RFC to keep it concise. There's also a flow-control feature, preventing sending messages to already full cports.
In order to implement these features, a 4-byte header is prepended to Greybus messages, making the whole header 12 bytes (Greybus header is 8 bytes).
This RFC starts by implementing a shim layer between physical bus drivers (like SDIO and SPI) and Greybus, and progressively add more elements to it to make it useful in its own right. Finally, an SDIO driver is added to enable the communication with a remote device.
Changes in v2:
- addressed review comments and errors reported by kernel bot
- for SDIO driver, remove padding between headers and payloads when aggregating packets together
I have to review this PR for a while. Sorry for the delay. I should have provided my feedback for the v1.
For now, the abstract interface seems a bit over-engineered. However, I assume will make sense once other buses will be added. Globally, this work looks good to me.
Until now, I was was a bit frustrated Greybus for Zephyr only addresses devices with network capabilities. I hope to be able to easily expose the services of my Zephyr devices to my Linux host with this PR.
Beside my small comments:
Reviewed-by: Jérôme Pouiller jerome.pouiller@silabs.com