diff --git a/src/mainboard/google/brya/acpi/cnvi_bt_reset.asl b/src/mainboard/google/brya/acpi/cnvi_bt_reset.asl index e2a387aee1..6e84522145 100644 --- a/src/mainboard/google/brya/acpi/cnvi_bt_reset.asl +++ b/src/mainboard/google/brya/acpi/cnvi_bt_reset.asl @@ -8,11 +8,17 @@ #define BT_RESET_GPIO GPP_D4 #endif +/* Delay in milliseconds for BT_RESET */ +#ifndef BT_RESET_DELAY_MS +#define BT_RESET_DELAY_MS 105 +#endif + #define CNV_BTEN GPP_VGPIO_0 #define CNV_BT_IF_SELECT GPP_VGPIO_5 External (\_SB.PCI0.CTXS, MethodObj) External (\_SB.PCI0.STXS, MethodObj) +External (\_SB.PCI0.GTXS, MethodObj) Scope (\_SB.PCI0.XHCI.RHUB.HS10) { @@ -25,18 +31,21 @@ Scope (\_SB.PCI0.XHCI.RHUB.HS10) Method (_ON, 0, NotSerialized) // _ON_: Power On { - \_SB.PCI0.STXS(CNV_BTEN); - \_SB.PCI0.STXS(CNV_BT_IF_SELECT); - \_SB.PCI0.STXS(BT_RESET_GPIO); - Sleep (105) + If (LEqual (\_SB.PCI0.GTXS(BT_RESET_GPIO), 0)) { + \_SB.PCI0.STXS(CNV_BTEN) + \_SB.PCI0.STXS(CNV_BT_IF_SELECT) + \_SB.PCI0.STXS(BT_RESET_GPIO) + } } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { - \_SB.PCI0.CTXS(CNV_BTEN); - \_SB.PCI0.CTXS(CNV_BT_IF_SELECT); - \_SB.PCI0.CTXS(BT_RESET_GPIO); - Sleep (105) + If (LEqual (\_SB.PCI0.GTXS(BT_RESET_GPIO), 1)) { + \_SB.PCI0.CTXS(CNV_BTEN) + \_SB.PCI0.CTXS(CNV_BT_IF_SELECT) + \_SB.PCI0.CTXS(BT_RESET_GPIO) + Sleep (BT_RESET_DELAY_MS) + } } }