Skip to content

Commit

Permalink
misc: uwb: nxp: sr1xx: UWB driver support for sr1xx series chip
Browse files Browse the repository at this point in the history
Ultra-wideband (UWB) is a short-range wireless communication protocol.

NXP has SR1XX family of UWB Subsystems (UWBS) devices. SR1XX SOCs
are FiRa Compliant. SR1XX SOCs are flash less devices and they need
Firmware Download on every device boot. More details on the SR1XX Family
can be found at https://www.nxp.com/products/:UWB-TRIMENSION

The sr1xx driver work the SR1XX Family of UWBS, and uses UWB Controller
Interface (UCI).  The corresponding details are available in the FiRa
Consortium Website (https://www.firaconsortium.org/).

Internally driver will handle two modes of operation.
1.HBCI mode (sr1xx BootROM Code Interface)
Firmware download uses HBCI ptotocol packet structure which is
Nxp proprietary,Firmware File(.bin) stored in user space context
and during device init sequence pick the firmware packet in chunk
and send it to the driver with write() api call.

After the firmware download sequence at the end UWBS will
send device status notification and its indication of device entered
UCI mode.
Here after any command/response/notification will follow
UCI packet structure.

2.UCI mode (UWB Command interface)
Once Firmware download finishes sr1xx will switch to UCI mode.
Then driver exchange command/response/notification as per the FIRA UCI
standard format between user space and sr1xx device.
Any response or notification received from sr1xx through SPI line
will convey to user space.

Its Interrupt based driver and IO Handshake needed with SR1XX Family of
SOCs.
This driver needs dts config update as per the sr1xx data sheet.
Corresponding document available in Documentation/devicetree/bindings/uwb

Message-ID: <20220504171337.3416983-1-manjunatha.venkatesh@nxp.com>
Signed-off-by: Manjunatha Venkatesh <manjunatha.venkatesh@nxp.com>
  • Loading branch information
rvmanjumce authored and intel-lab-lkp committed May 27, 2022
1 parent ed2f4c7 commit 948442a
Show file tree
Hide file tree
Showing 3 changed files with 847 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/misc/Kconfig
Expand Up @@ -483,6 +483,18 @@ config OPEN_DICE

If unsure, say N.

config NXP_UWB
tristate "Nxp UCI(Uwb Command Interface) protocol driver support"
depends on SPI
help
This option enables the UWB driver for Nxp sr1xx
device. Such device supports UCI packet structure,
FiRa compliant.

Say Y here to compile support for sr1xx into the kernel or
say M to compile it as a module. The module will be called
sr1xx.ko

source "drivers/misc/c2port/Kconfig"
source "drivers/misc/eeprom/Kconfig"
source "drivers/misc/cb710/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/misc/Makefile
Expand Up @@ -60,3 +60,4 @@ obj-$(CONFIG_XILINX_SDFEC) += xilinx_sdfec.o
obj-$(CONFIG_HISI_HIKEY_USB) += hisi_hikey_usb.o
obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
obj-$(CONFIG_OPEN_DICE) += open-dice.o
obj-$(CONFIG_NXP_UWB) += nxp-sr1xx.o

0 comments on commit 948442a

Please sign in to comment.