Added proprietary hci_uart driver code to the linux hci uart sub-system as
hci_nxp. This driver has Power Save feature that will put the NXP bluetooth
chip into sleep state, whenever there is no activity for certain duration
of time (2000ms), and will be woken up when any activity is to be
initiated.
This Power Save feature will be enabled by default and can be disabled and
re-enabled by the following set of commands:
hcitool -i hci0 cmd 3F 23 02 00 00 (disable Power Save)
hcitool -i hci0 cmd 3F 23 03 00 00 (enable Power Save)
The Power Save feature uses UART break signal by default as chip sleep and
wake-up source, and can be set with the following set of commands:
hcitool -i hci0 cmd 3F 53 03 14 01 FF (set UART break method)
hcitool -i hci0 cmd 3F 53 03 14 02 15 (set chip's GPIO[20] method)
Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@xxxxxxx>
---
MAINTAINERS | 6 +
drivers/bluetooth/Kconfig | 10 +
drivers/bluetooth/Makefile | 1 +
drivers/bluetooth/hci_ldisc.c | 6 +
drivers/bluetooth/hci_nxp.c | 763 ++++++++++++++++++++++++++++++++++++++++++
drivers/bluetooth/hci_nxp.h | 118 +++++++
drivers/bluetooth/hci_uart.h | 8 +-
7 files changed, 911 insertions(+), 1 deletion(-)
create mode 100644 drivers/bluetooth/hci_nxp.c
create mode 100644 drivers/bluetooth/hci_nxp.h
diff --git a/MAINTAINERS b/MAINTAINERS
index e55a4d4..6b2c264 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -22591,6 +22591,12 @@ L: linux-mm@xxxxxxxxx
S: Maintained
F: mm/zswap.c
+NXP BLUETOOTH WIRELESS DRIVERS
+M: amitkumar.karwar@xxxxxxx
+M: neeraj.sanjaykale@xxxxxxx
+S: Maintained
+F: drivers/bluetooth/hci_nxp*
+
THE REST
M: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
L: linux-kernel@xxxxxxxxxxxxxxx