Re: [PATCH v2] uwb: nxp: sr1xx: UWB driver support for sr1xx series chip

From: Greg KH
Date: Tue Mar 15 2022 - 07:35:08 EST


On Tue, Mar 15, 2022 at 04:22:05PM +0530, Manjunatha Venkatesh wrote:
> Ultra Wide Band(UWB) is a fast, secure and low power radio protocol used
> to determine location with accuracy unmatched by any other wireless
> technology.
> Its a short-range wireless communication protocol. It uses radio waves to
> enable devices to talk to each other.
>
> This is a new driver that supports the integrated UWB for
> Nxp SoCs, especially the sr1xx series and depends on the SPI module.
>
> This driver works with Nxp UWB Subsystem(UWBS) which is FiRa Compliance.
> Corresponding UCI details available in Fira Consortuim website.
>
> sr1xx is flash less UWBS and it requires firmware download on every
> device boot.
>
> 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.
> Complete firmware download protocol logic implemented in user space,
> Driver used here is kind of pipe to send data to SPI line.
> Firmware acknowledge for every chunk packet sent and same thing
> is monitored,in user space code(HAL layer).
> If any error Firmware download sequence will fail and reset the device.
> If firmware download packet sent successfully at the end device 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 packet
> structure.Here this driver acts as pipe between user space and sr1xx.
> Any response or notification received from sr1xx through SPI line
> will convey to user space.User space(UCI lib) will take care of
> UCI parsing logic.
>
> Its IRQ based driver and sr1xx specific irq handshake mechanism logic
> implemented to avoid any race condition between write and read
> during ranging sequence.
>
> UCI mode Write is same as HBCI mode sequence whatever command received
> from user space will send to the sr1xx via SPI line.
> In UCI mode read api called first and waiting on the IRQ line status
> in order to avoid missing of interrupts after write sequence.
>
> This driver needs dts config update as per the sr1xx data sheet.
> Corresponding document added in Documentation/devicetree/bindings/uwb
>
> Signed-off-by: Manjunatha Venkatesh <manjunatha.venkatesh@xxxxxxx>
>
> Changes since v1:
> https://lkml.org/lkml/2022/3/7/1254

Always use lore.kernel.org links. Also the changelog goes below the ---
line. This does not describe what changed, you are just pointing to a
random place on the internet, which does not explain anything.

greg k-h