Skip to content

Commit

Permalink
greybus: Add BeaglePlay Linux Driver
Browse files Browse the repository at this point in the history
Add the Greybus host driver for BeaglePlay board by BeagleBoard.org.

The current greybus setup involves running SVC in a user-space
application (GBridge) and using netlink to communicate with kernel
space. GBridge itself uses wpanusb kernel driver, so the greybus messages
travel from kernel space (gb_netlink) to user-space (GBridge) and then
back to kernel space (wpanusb) before reaching CC1352.

This driver directly communicates with CC1352 (running SVC Zephyr
application). Thus, it simplifies the complete greybus setup eliminating
user-space GBridge.

This driver is responsible for the following:
- Start SVC (CC1352) on driver load.
- Send/Receive Greybus messages to/from CC1352 using HDLC over UART.
- Print Logs from CC1352.
- Stop SVC (CC1352) on driver load.

Signed-off-by: Ayush Singh <ayushdevel1325@gmail.com>
Link: https://lore.kernel.org/r/20231017101116.178041-3-ayushdevel1325@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Ayush Singh authored and Greg Kroah-Hartman committed Oct 27, 2023
1 parent c966c71 commit ec558bb
Show file tree
Hide file tree
Showing 4 changed files with 514 additions and 0 deletions.
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -8996,6 +8996,7 @@ M: Ayush Singh <ayushdevel1325@gmail.com>
L: greybus-dev@lists.linaro.org (moderated for non-subscribers)
S: Maintained
F: Documentation/devicetree/bindings/net/ti,cc1352p7.yaml
F: drivers/greybus/gb-beagleplay.c

GREYBUS SUBSYSTEM
M: Johan Hovold <johan@kernel.org>
Expand Down
10 changes: 10 additions & 0 deletions drivers/greybus/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ menuconfig GREYBUS

if GREYBUS

config GREYBUS_BEAGLEPLAY
tristate "Greybus BeaglePlay driver"
depends on SERIAL_DEV_BUS
help
Select this option if you have a BeaglePlay where CC1352
co-processor acts as Greybus SVC.

To compile this code as a module, chose M here: the module
will be called gb-beagleplay.ko

config GREYBUS_ES2
tristate "Greybus ES3 USB host controller"
depends on USB
Expand Down
2 changes: 2 additions & 0 deletions drivers/greybus/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ obj-$(CONFIG_GREYBUS) += greybus.o
# needed for trace events
ccflags-y += -I$(src)

obj-$(CONFIG_GREYBUS_BEAGLEPLAY) += gb-beagleplay.o

# Greybus Host controller drivers
gb-es2-y := es2.o

Expand Down
Loading

0 comments on commit ec558bb

Please sign in to comment.