BeagleConnect is both a technology concept and a line of board designs
that implement the technology. Born from Greybus, a mechanism for
dynamically extending a Linux system with embedded peripherals,
BeagleConnect adds two key elements: a 6LoWPAN transport and mikroBUS
manifests. The 6LoWPAN transport provides for arbitrary connections,
including the IEEE802.15.4g long-range wireless transport supported
between BeaglePlay and BeagleConnect Freedom (the first BeagleConnect
board design). The mikroBUS manifests provide for rapid prototyping
and low-node-count production with sensor boards following the
mikroBUS freely-licensable embedded bus standard such that existing
Linux drivers can be loaded upon Greybus discovery of the nodes.
This patch set provides the Linux-side hooks required for the 6LoWPAN
transport for BeagleConnect on BeaglePlay. Also adds required devicetree
additions.
Tested over `next-20230825`.
Link: https://programmershideaway.xyz/tags/gsoc23/ GSoC23 Blog
Link: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware Zephyr App
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay GitHub Branch
Link: https://docs.beagleboard.org/latest/boards/beagleconnect/index.html BeagleConnect
Link: https://docs.beagleboard.org/latest/boards/beagleplay/index.html BeaglePlay
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay Github Repo
Link: https://lists.linaro.org/archives/list/greybus-dev@lists.linaro.org/thread/… Patch v6
Changes in Patch v7
v6 -> v7:
- Drop speed variable
- Fix commit message
- add clock-names and descriptions
- fix power lines
v5 -> v6:
- Rename compatible to `ti,cc1352p7`
- Fix formatting
- Use kerneldoc
- Add clocks, power-gpios, reset-gpios to dt bindings
v4 -> v5:
- Move DT Bindings to net
- Rename compatible to `beagle,play-cc1352`
- Expose CC1352 as MCU
- Remove redundant tracing messages
- Fix memory leaks
v3 -> v4:
- Add DT Bindings
- Reorder commits
- Improve commit messages
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (3):
dt-bindings: net: Add ti,cc1352p7
greybus: Add BeaglePlay Linux Driver
dts: ti: k3-am625-beagleplay: Add beaglecc1352
.../devicetree/bindings/net/ti,cc1352p7.yaml | 51 ++
MAINTAINERS | 7 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 2 +
drivers/greybus/gb-beagleplay.c | 501 ++++++++++++++++++
6 files changed, 575 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/ti,cc1352p7.yaml
create mode 100644 drivers/greybus/gb-beagleplay.c
base-commit: 6269320850097903b30be8f07a5c61d9f7592393
--
2.41.0
BeagleConnect is both a technology concept and a line of board designs
that implement the technology. Born from Greybus, a mechanism for
dynamically extending a Linux system with embedded peripherals,
BeagleConnect adds two key elements: a 6LoWPAN transport and mikroBUS
manifests. The 6LoWPAN transport provides for arbitrary connections,
including the IEEE802.15.4g long-range wireless transport supported
between BeaglePlay and BeagleConnect Freedom (the first BeagleConnect
board design). The mikroBUS manifests provide for rapid prototyping
and low-node-count production with sensor boards following the
mikroBUS freely-licensable embedded bus standard such that existing
Linux drivers can be loaded upon Greybus discovery of the nodes.
This patch set provides the Linux-side hooks required for the 6LoWPAN
transport for BeagleConnect on BeaglePlay. Also adds required devicetree
additions.
Tested over `next-20230825`.
Link: https://programmershideaway.xyz/tags/gsoc23/ GSoC23 Blog
Link: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware Zephyr App
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay GitHub Branch
Link: https://docs.beagleboard.org/latest/boards/beagleconnect/index.html BeagleConnect
Link: https://docs.beagleboard.org/latest/boards/beagleplay/index.html BeaglePlay
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay Github Repo
Link: https://lists.linaro.org/archives/list/greybus-dev@lists.linaro.org/thread/… Patch v5
Changes in Patch v6
v5 -> v6:
- Rename compatible to `ti,cc1352p7`
- Fix formatting
- Use kerneldoc
- Add clocks, power-gpios, reset-gpios to dt bindings
v4 -> v5:
- Move DT Bindings to net
- Rename compatible to `beagle,play-cc1352`
- Expose CC1352 as MCU
- Remove redundant tracing messages
- Fix memory leaks
v3 -> v4:
- Add DT Bindings
- Reorder commits
- Improve commit messages
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (3):
dt-bindings: Add beaglecc1352
greybus: Add BeaglePlay Linux Driver
dts: ti: k3-am625-beagleplay: Add beaglecc1352
.../devicetree/bindings/net/ti,cc1352p7.yaml | 48 ++
MAINTAINERS | 7 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 2 +
drivers/greybus/gb-beagleplay.c | 495 ++++++++++++++++++
6 files changed, 566 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/ti,cc1352p7.yaml
create mode 100644 drivers/greybus/gb-beagleplay.c
base-commit: 6269320850097903b30be8f07a5c61d9f7592393
--
2.41.0
BeagleConnect is both a technology concept and a line of board designs
that implement the technology. Born from Greybus, a mechanism for
dynamically extending a Linux system with embedded peripherals,
BeagleConnect adds two key elements: a 6LoWPAN transport and mikroBUS
manifests. The 6LoWPAN transport provides for arbitrary connections,
including the IEEE802.15.4g long-range wireless transport supported
between BeaglePlay and BeagleConnect Freedom (the first BeagleConnect
board design). The mikroBUS manifests provide for rapid prototyping
and low-node-count production with sensor boards following the
mikroBUS freely-licensable embedded bus standard such that existing
Linux drivers can be loaded upon Greybus discovery of the nodes.
This patch set provides the Linux-side hooks required for the 6LoWPAN
transport for BeagleConnect on BeaglePlay. Also adds required devicetree
additions.
Tested over `next-20230825`.
Link: https://programmershideaway.xyz/tags/gsoc23/ GSoC23 Blog
Link: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware Zephyr App
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay GitHub Branch
Link: https://lists.linaro.org/archives/list/greybus-dev@lists.linaro.org/thread/… Patch v4
Link: https://docs.beagleboard.org/latest/boards/beagleconnect/index.html BeagleConnect
Link: https://docs.beagleboard.org/latest/boards/beagleplay/index.html BeaglePlay
Link: https://github.com/Ayush1325/linux/tree/gb-beagleplay Github Repo
Changes in Patch v5
v4 -> v5:
- Move DT Bindings to net
- Rename compatible to `beagle,play-cc1352`
- Expose CC1352 as MCU
- Remove redundant tracing messages
- Fix memory leaks
v3 -> v4:
- Add DT Bindings
- Reorder commits
- Improve commit messages
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (3):
dt-bindings: Add beaglecc1352
greybus: Add BeaglePlay Linux Driver
dts: ti: k3-am625-beagleplay: Add beaglecc1352
.../bindings/net/beagle,play-cc1352.yaml | 25 +
MAINTAINERS | 7 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 4 +-
drivers/greybus/gb-beagleplay.c | 526 ++++++++++++++++++
6 files changed, 574 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/beagle,play-cc1352.yaml
create mode 100644 drivers/greybus/gb-beagleplay.c
base-commit: 6269320850097903b30be8f07a5c61d9f7592393
--
2.41.0
BeaglePlay is a board by BeagleBoard.org. It contains a main AM62
processor with a CC1352 co-processor. They are connected over UART.
Greybus is a hardware protocol that was designed to provide Unipro with a
sane application layer. It can be used in IOT and IIOT applications
keeping the intelligence on the host.
This driver has been tested on BeaglePlay by BeagleBoard.org. It serves
as Greybus Host device and communicates with BeaglePlay CC1352
co-processor which serves as Greybus SVC. This replaces the old setup with
bcfserial, wpanusb and GBridge. This driver also contains async HDLC code
since communication with SVC take place over UART using HDLC.
This driver has been created as a part of my Google Summer of Code 2023.
For more information, take a look at my blog.
This patchset has been tested over `next-20230825`.
My GSoC23 Blog: https://programmershideaway.xyz/tags/gsoc23/
Zephyr App: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware
GitHub Branch: https://github.com/Ayush1325/linux/tree/gb-beagleplay
Video Demo: https://youtu.be/GVuIB7i5pjk
This the v4 of this patch
v3 -> v4:
- Add DT Bindings
- Reorder commits
- Improve commit messages
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (3):
dt-bindings: Add beaglecc1352
greybus: Add BeaglePlay Linux Driver
dts: ti: k3-am625-beagleplay: Add beaglecc1352
.../bindings/serial/beaglecc1352.yaml | 25 +
MAINTAINERS | 7 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 3 +-
drivers/greybus/gb-beagleplay.c | 494 ++++++++++++++++++
6 files changed, 542 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/serial/beaglecc1352.yaml
create mode 100644 drivers/greybus/gb-beagleplay.c
--
2.41.0
while working on an extension for the pwm framework, I noticed that some
drivers and even the core only nearly consistently named all variables
and struct members holding a pointer to a struct pwm_chip "chip":
$ git grep -Pho 'struct pwm_chip \**[a-z0-9_]+(*nla:[\(a-z0-9_])' v6.5-rc1 | sort | uniq -c | sort -n
1 struct pwm_chip *pwm
1 struct pwm_chip pwm
1 struct pwm_chip pwm_chip
2 struct pwm_chip *_chip
4 struct pwm_chip *c
8 struct pwm_chip *pc
57 struct pwm_chip chip
358 struct pwm_chip *chip
With this series applied these are all called "chip" with one exception:
The led driver drivers/leds/rgb/leds-qcom-lpg.c uses "pwm". Maybe
"pwmchip" would be a better name, but I'm not sure that using "chip" was
an improvement there as this isn't a pure pwm driver. I'm not touching
that one.
The first offenders I found were the core and the atmel-hlcdc driver.
After I found these I optimistically assumed these were the only ones
with the unusual names and send patches for these out individually
before checking systematically.
The atmel-hlcdc patch is included here unchanged, the core patch now
also adapted the declaration of the changed functions in <linux/pwm.h>.
I marked these two as "superseded" in patchwork already.
All patches in this series are pairwise independent of each other. I
don't know if the staging patch should better go in via the greybus tree
or via pwm. Both is possible without needing coordination.
Best regards
Uwe
Uwe Kleine-König (10):
pwm: Use a consistent name for pwm_chip pointers in the core
pwm: atmel-hlcdc: Use consistent variable naming
pwm: bcm-kona: Consistenly name pwm_chip variables "chip"
pwm: crc: Consistenly name pwm_chip variables "chip"
pwm: cros-ec: Consistenly name pwm_chip variables "chip"
pwm: lp3943: Consistenly name pwm_chip variables "chip"
pwm: rockchip: Consistenly name pwm_chip variables "chip"
pwm: sifive: Consistenly name pwm_chip variables "chip"
pwm: sl28cpld: Consistenly name pwm_chip variables "chip"
staging: greybus: pwm: Consistenly name pwm_chip variables "chip"
drivers/pwm/core.c | 28 +++++++--------
drivers/pwm/pwm-atmel-hlcdc.c | 64 +++++++++++++++++------------------
drivers/pwm/pwm-bcm-kona.c | 4 +--
drivers/pwm/pwm-crc.c | 4 +--
drivers/pwm/pwm-cros-ec.c | 10 +++---
drivers/pwm/pwm-lp3943.c | 4 +--
drivers/pwm/pwm-rockchip.c | 4 +--
drivers/pwm/pwm-sifive.c | 4 +--
drivers/pwm/pwm-sl28cpld.c | 10 +++---
drivers/staging/greybus/pwm.c | 12 +++----
include/linux/pwm.h | 6 ++--
11 files changed, 75 insertions(+), 75 deletions(-)
base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5
--
2.39.2
BeaglePlay is a board by BeagleBoard.org. It contains a main AM62
processor with a CC1352 co-processor. They are connected over UART.
Greybus is a hardware protocol that was designed to provide Unipro with a
sane application layer. It can be used in IOT and IIOT applications
keeping the intelligence on the host.
This driver has been tested on BeaglePlay by BeagleBoard.org. It serves
as Greybus Host device and communicates with BeaglePlay CC1352
co-processor which serves as Greybus SVC. This replaces the old setup with
bcfserial, wpanusb and GBridge. This driver also contains async HDLC code
since communication with SVC take place over UART using HDLC.
This driver has been created as a part of my Google Summer of Code 2023.
For more information, take a look at my blog.
This patchset has been tested over `next-20230825`.
My GSoC23 Blog: https://programmershideaway.xyz/tags/gsoc23/
Zephyr App: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware
GitHub Branch: https://github.com/Ayush1325/linux/tree/gb-beagleplay
Video Demo: https://youtu.be/GVuIB7i5pjk
This the v4 of this patch
v3 -> v4:
- Add DT Bindings
- Reorder commits
- Improve commit messages
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (3):
dt-bindings: Add beaglecc1352
greybus: Add BeaglePlay Linux Driver
dts: ti: k3-am625-beagleplay: Add beaglecc1352
.../bindings/serial/beaglecc1352.yaml | 25 +
MAINTAINERS | 7 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 3 +-
drivers/greybus/gb-beagleplay.c | 494 ++++++++++++++++++
6 files changed, 542 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/serial/beaglecc1352.yaml
create mode 100644 drivers/greybus/gb-beagleplay.c
--
2.41.0
This driver can be used in any Greybus setup where SVC and Linux Host
are connected over UART.
This driver has been tested on BeaglePlay by BeagleBoard.org. It
communicates with BeaglePlay CC1352 co-processor which serves as Greybus
SVC. This replaces the old setup with bcfserial, wpanusb and GBridge. This
driver also contains async HDLC code since communication with SVC take
place over UART using HDLC.
This patchset also introduces a compatible property for the UART that is
connected to CC1352 in BeaglePlay. I am not quite sure if it needs its
own DT Schema file under `Documentation/devicetree/bindings/serial`.
This driver has been created as a part of my Google Summer of Code 2023.
For more information, take a look at my blog.
This patchset has been tested over `next-20230825`.
My GSoC23 Blog: https://programmershideaway.xyz/tags/gsoc23/
Zephyr App: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware
GitHub Branch: https://github.com/Ayush1325/linux/tree/gb-beagleplay
Video Demo: https://youtu.be/GVuIB7i5pjk
This the v3 of this patch
v2 -> v3:
- Move gb-beagleplay out of staging
v1 -> v2:
- Combine the driver into a single file
- Remove redundant code
- Fix Checkpatch complaints
- Other suggested changes
Ayush Singh (2):
dts: Add beaglecc1352 to devicetree
greybus: Add BeaglePlay Linux Driver
MAINTAINERS | 5 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/greybus/Kconfig | 10 +
drivers/greybus/Makefile | 3 +-
drivers/greybus/gb-beagleplay.c | 494 ++++++++++++++++++
5 files changed, 515 insertions(+), 1 deletion(-)
create mode 100644 drivers/greybus/gb-beagleplay.c
--
2.41.0
This driver can be used in any Greybus setup where SVC and Linux Host
are connected over UART.
This driver has been tested on BeaglePlay by BeagleBoard.org. It communicates
with BeaglePlay CC1352 co-processor which serves as Greybus SVC. This
replaces the old setup with bcfserial, wpanusb and GBridge. This driver also
contains async HDLC code since communication with SVC take place over UART
using HDLC.
This patchset also introduces a compatible property for the UART that is
connected to CC1352 in BeaglePlay. I am not quite sure if it needs its
own DT Schema file under `Documentation/devicetree/bindings/serial`.
This driver has been created as a part of my Google Summer of Code 2023.
For more information, take a look at my blog.
I have made most of the changes requested in the first version of this
patch and simplified the code as well.
This patchset has been tested over `next-20230825`.
My GSoC23 Blog: https://programmershideaway.xyz/tags/gsoc23/
Zephyr Application: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware
GitHub Branch: https://github.com/Ayush1325/linux/tree/gb-beagleplay
Video Demo: https://youtu.be/GVuIB7i5pjk
Ayush Singh (2):
dts: Add beaglecc1352 to devicetree
staging/greybus: Add BeaglePlay Linux Driver
MAINTAINERS | 5 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/staging/greybus/Kconfig | 9 +
drivers/staging/greybus/Makefile | 3 +
drivers/staging/greybus/gb-beagleplay.c | 493 ++++++++++++++++++
5 files changed, 514 insertions(+)
create mode 100644 drivers/staging/greybus/gb-beagleplay.c
--
2.41.0
This driver is for BeaglePlay by BeagleBoard.org. It communicates with
BeaglePlay CC1352 co-processor which serves as Greybus SVC [1]. This
replaces the old setup with bcfserial, wpanusb and GBridge.
This driver also contains async HDLC code since communication with
CC1352 take place over UART using HDLC.
Since this is my first driver, I expect there to be some mistakes, so
feel free to give feedback and point out things I might have missed or
might not be aware of.
This driver has been created as a part of my Google Summer of Code 2023.
For more information, take a look at my blog [2]
[1]: https://git.beagleboard.org/gsoc/greybus/cc1352-firmware
[2]: https://programmershideaway.xyz/tags/gsoc23/
Ayush Singh (4):
Add beagleplaygreybus to devicetree
Add beagleplay greybus driver
Add HDLC helper for beagleplay driver
Allow building beagleplay greybus driver
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 4 +
drivers/staging/greybus/Kconfig | 9 +
drivers/staging/greybus/Makefile | 5 +
.../greybus/beagleplay-greybus-driver.c | 264 ++++++++++++++++++
.../greybus/beagleplay-greybus-driver.h | 28 ++
drivers/staging/greybus/hdlc.c | 229 +++++++++++++++
drivers/staging/greybus/hdlc.h | 137 +++++++++
7 files changed, 676 insertions(+)
create mode 100644 drivers/staging/greybus/beagleplay-greybus-driver.c
create mode 100644 drivers/staging/greybus/beagleplay-greybus-driver.h
create mode 100644 drivers/staging/greybus/hdlc.c
create mode 100644 drivers/staging/greybus/hdlc.h
--
2.41.0