Bluetooth: btintel: Add support to reset bluetooth via ACPI DSM
authorKiran K <kiran.k@intel.com>
Sun, 11 Jun 2023 06:43:42 +0000 (12:13 +0530)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 11 Aug 2023 18:39:19 +0000 (11:39 -0700)
commit8f0a3786f56d9fa4b308bdbd54757a51145dbb7a
tree721c3ea549865436ba6ef19bff3e445a709ffa8f
parent06d3fdfcdf5cefb06f2024b9d3dad356779399cf
Bluetooth: btintel: Add support to reset bluetooth via ACPI DSM

New Intel platforms supports reset of Bluetooth device  via ACPI DSM
methods. The legacy reset mechanism via GPIO will be deprecated in
future. This patch checks the platform support for reset methods and if
supported uses the same instead of legacy GPIO toggling method.

ACPI firmware supports two types of reset method based on NIC card.
(Discrete or Integrated).

1. VSEC Type - Vendor Specific Extended Capability. Here  BT_EN and
   BT_IF_SELECT lines are driven by a register in PCH cluster. This
   interface is supported on discrete BT solution.

2. WDISABLE2 - In this soluton, W_DISABLE2 pin in M.2 is connected to
   physical GPIO from PCH. The DSM interface shall toggle this to recover
   from  error.

Signed-off-by: Kiran K <kiran.k@intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
drivers/bluetooth/btintel.c
drivers/bluetooth/btintel.h
drivers/bluetooth/btusb.c