Greybus
Expose a node's GPIO, I2C, SPI and PWM to a remote Linux host with the Greybus protocol.
- Follows branch
main: eachwest updatewill get its latest commits. To stay on one version, it is recommended to use a release tag.
Install
# From the workspace root
curl -fsSL https://kartben.github.io/windrose/m/greybus.yaml \
-o zephyr/submanifests/greybus.yaml
west update greybus
# From the workspace root
Invoke-WebRequest https://kartben.github.io/windrose/m/greybus.yaml `
-OutFile zephyr/submanifests/greybus.yaml
west update greybus
- name: greybus url: https://github.com/beagleboard/greybus-zephyr revision: main path: modules/lib/greybus
Add to projects in your west.yml, then run west update greybus.
Details
- Revision
- main
- License
- Apache-2.0 AND BSD-3-Clause
- Maintainers
- @beagleboard
- Last commit
- 3 mo ago
- Includes
- DT bindings, Samples, Tests
About
Greybus is a lightweight, message-based protocol framework that provides a standardized way for hosts to access hardware functions implemented on remote modules. It was originally developed for modular systems and defines a set of well-specified operation protocols for common peripheral classes such as GPIO, I²C, SPI, PWM, and firmware updates.
The Greybus module for Zephyr provides an implementation of the Greybus protocol layers that map Greybus operations to Zephyr subsystems. When enabled, a Zephyr device can expose its hardware capabilities to a host using the Greybus protocols. The host discovers available functionality through Greybus manifest data, then issues class-specific requests that the Zephyr module processes and responds to.
Initially, Greybus was designed for use over Unipro. However, the protocol itself is mostly independent of underlying transport. Currently, the Greybus module supports TCP socket as transport. However, any transport such as UART, I2C, etc should work fine. See the contents of this directory for the current supported transport backends. Feel free to create PRs for new transport backends.
Greybus is licensed under a combination of Apache-2.0 and BSD-3-Clause license.