On Wed, Mar 01, 2023 at 09:15:14PM +0530, Neeraj Sanjay Kale wrote: > This adds a driver based on serdev driver for the NXP BT serial protocol > based on running H:4, which can enable the built-in Bluetooth device > inside an NXP BT chip. > > This driver has Power Save feature that will put the chip into sleep state > whenever there is no activity for 2000ms, and will be woken up when any > activity is to be initiated over UART. > > This driver enables the power save feature by default by sending the vendor > specific commands to the chip during setup. > > During setup, the driver checks if a FW is already running on the chip > by waiting for the bootloader signature, and downloads device specific FW > file into the chip over UART if bootloader signature is received.. > > Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@xxxxxxx> <snip> > +#define FIRMWARE_W8987 "nxp/uartuart8987_bt.bin" > +#define FIRMWARE_W8997 "nxp/uartuart8997_bt_v4.bin" > +#define FIRMWARE_W9098 "nxp/uartuart9098_bt_v1.bin" > +#define FIRMWARE_IW416 "nxp/uartiw416_bt_v0.bin" > +#define FIRMWARE_IW612 "nxp/uartspi_n61x_v1.bin.se" Where are this files coming from? Where can I download those? Is loading a combo firmware from the mwifiex driver supported? > +#define HCI_NXP_PRI_BAUDRATE 115200 > +#define HCI_NXP_SEC_BAUDRATE 3000000 What if the UART device does not support 3000000 baudrate (think at limitation on the clock source/divider of the UART)? Shouldn't this be configurable? > +#define NXP_V1_FW_REQ_PKT 0xa5 > +#define NXP_V1_CHIP_VER_PKT 0xaa > +#define NXP_V3_FW_REQ_PKT 0xa7 > +#define NXP_V3_CHIP_VER_PKT 0xab > + > +#define NXP_ACK_V1 0x5a > +#define NXP_NAK_V1 0xbf > +#define NXP_ACK_V3 0x7a > +#define NXP_NAK_V3 0x7b > +#define NXP_CRC_ERROR_V3 0x7c I assume this was already discussed, but the *_V1 looks just like the existing Marvell protocol, is it really worth a new driver? I did not check all the details here, so maybe the answer is just yes. Francesco