Serial: silabs si4455 serial driver
Subsystems (2)
PATCH v3 1/1 Serial: silabs si4455 serial driver
This is a serial port driver for
Silicon Labs Si4455 Sub-GHz transciver.
The goal of this driver is to removing wires
between central(linux) device and remote serial devices/sensors, but keeping the original user software.
It represents regular serial interface for the user space.
Datasheet: https://www.silabs.com/documents/public/data-sheets/Si4455.pdf
--- .../staging/serial/silabs,si4455.yaml | 98 ++ MAINTAINERS | 7 + drivers/tty/serial/Kconfig | 8 + drivers/tty/serial/Makefile | 1 + drivers/tty/serial/si4455.c | 1328 +++++++++++++++++ 5 files changed, 1442 insertions(+) create mode 100644 Documentation/devicetree/bindings/staging/serial/silabs,si4455.yaml create mode 100644 drivers/tty/serial/si4455.c
Documentation/devicetree/bindings/staging/serial/silabs,si4455.yaml new file +98 -0
@@ -0,0 +1,98 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/serial/silabs,si4455.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Silicon Labs Si4455 device tree bindings + +maintainers: + - József Horváth <[email protected]> + +description: + This document is for describing the required device tree parameters for si4455 serial driver. + The si4455 driver tries to represent the Silicon Labs Si4455 sub-GHz transceiver device + like a serial port. The required parameters for proper operation are described below. + https://www.silabs.com/documents/public/data-sheets/Si4455.pdf + +allOf: + - $ref: "serial.yaml#" + +properties: + compatible: + const: silabs,si4455 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + spi-max-frequency: + description: maximum clock frequency on SPI port + maximum: 500000 + + shutdown-gpios: + description: gpio pin for SDN + maxItems: 1 + + silabs,package-size: + description: + Radio payload length, variable packet length is not supported by driver. + This value should equal with EZConfig payload length. + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 64 + minimum: 1 + + silabs,tx-channel: + description: + Radio transmit channel selection. + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 255 + minimum: 0 + + silabs,rx-channel: + description: + Radio receive channel selection. + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 255 + minimum: 0 + + silabs,ez-config: + description: + Radio configuration data file name. + $ref: /schemas/types.yaml#/definitions/string + items: + pattern: ^[0-9a-z\._\-]{1,255}$ + +required: + - reg + - interrupts + - spi-max-frequency + - shutdown-gpios + - silabs,package-size + - silabs,tx-channel + - silabs,rx-channel + - silabs,ez-config + +additionalProperties: false + +examples: + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + si4455_0: serial@0 { + compatible = "silabs,si4455"; + reg = <0>; + interrupt-parent = <&gpio>; + interrupts = <7 2>; + shutdown-gpios = <&gpio 26 1>; + spi-max-frequency = <300000>; + silabs,package-size = <30>; + silabs,tx-channel = <1>; + silabs,rx-channel = <2>; + silabs,ez-config = "si4455_spi0_0.ez.bin"; + }; + }; +...
MAINTAINERS +7 -0
@@ -15952,6 +15952,13 @@ M: Jérôme Pouiller <[email protected]> S: Supported F: drivers/staging/wfx/ +SILICON LABS SI4455 SERIAL DRIVER +M: József Horváth <[email protected]> +S: Maintained +F: Documentation/devicetree/bindings/staging/serial/silabs,si4455.yaml +F: drivers/tty/serial/si4455.c +F: drivers/tty/serial/si4455_api.h + SILICON MOTION SM712 FRAME BUFFER DRIVER M: Sudip Mukherjee <[email protected]> M: Teddy Wang <[email protected]>
drivers/tty/serial/Kconfig +8 -0
@@ -1583,6 +1583,14 @@ config SERIAL_MILBEAUT_USIO_CONSOLE receives all kernel messages and warnings and which allows logins in single user mode). +config SERIAL_SI4455 + tristate "Si4455 support" + depends on SPI + select SERIAL_CORE + help + This driver is for Silicon Labs's Si4455 Sub-GHz transciver. + Say 'Y' here if you wish to use it as serial port. + endmenu config SERIAL_MCTRL_GPIO
drivers/tty/serial/Makefile +1 -0
@@ -90,6 +90,7 @@ obj-$(CONFIG_SERIAL_OWL) += owl-uart.o obj-$(CONFIG_SERIAL_RDA) += rda-uart.o obj-$(CONFIG_SERIAL_MILBEAUT_USIO) += milbeaut_usio.o obj-$(CONFIG_SERIAL_SIFIVE) += sifive.o +obj-$(CONFIG_SERIAL_SI4455) += si4455.o # GPIOLIB helpers for modem control lines obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
drivers/tty/serial/si4455.c new file +1328 -0
1,328 lines not on this page · raw message
Signature · 1 line
2.17.1
Rob Herring
maintainerQuoted 11 lines · József Horváth
This is a serial port driver for
Silicon Labs Si4455 Sub-GHz transciver.The goal of this driver is to removing wires
between central(linux) device and remote serial devices/sensors, but keeping the original user software.
It represents regular serial interface for the user space.Datasheet: https://www.silabs.com/documents/public/data-sheets/Si4455.pdf
Signed-off-by József Horváth <[email protected]>
Quoted 10 lines
--- .../staging/serial/silabs,si4455.yaml | 98 ++ MAINTAINERS | 7 + drivers/tty/serial/Kconfig | 8 + drivers/tty/serial/Makefile | 1 + drivers/tty/serial/si4455.c | 1328 +++++++++++++++++ 5 files changed, 1442 insertions(+) create mode 100644 Documentation/devicetree/bindings/staging/serial/silabs,si4455.yaml create mode 100644 drivers/tty/serial/si4455.c
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:./Documentation/devicetree/bindings/staging/serial/silabs,si4455.yaml: $id: relative path/filename doesn't match actual path or filename
expected: http://devicetree.org/schemas/staging/serial/silabs,si4455.yaml#
See https://patchwork.ozlabs.org/patch/1415258
The base for the patch is generally the last rc1. Any dependencies should be noted.
If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:
pip3 install dtschema --upgrade
Please check and re-submit.