diff --git a/src/ec/starlabs/merlin/acpi/dock.asl b/src/ec/starlabs/merlin/acpi/dock.asl new file mode 100644 index 0000000000..8d648bc8b9 --- /dev/null +++ b/src/ec/starlabs/merlin/acpi/dock.asl @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +Device (VBTN) +{ + Name (_HID, "INT33D6") + Name (_UID, 1) + Name (_DDN, "Intel Virtual Button Driver") + + Method (_STA, 0, NotSerialized) + { + Return (0x0f) + } + + Method (VBDL) + { + } + + Method (UPDK, 0, Serialized) + { + Local0 = VGBS() + + If (Local0 == 0) { + Printf ("Tablet Mode") + Notify (HIDD, 0xcc) /* Tablet */ + } Else { + Printf ("Docked") + Notify (HIDD, 0xcd) /* Docked */ + } + Return (Local0) + } + + Method (VGBS, 0) + { +#if CONFIG(SYSTEM_TYPE_DETACHABLE) + If (!GRXS (GPP_F15)) + { + Return (0x40) + } +#endif + Return (0x00) + } +} + +Device (VBTO) +{ + Name (_HID, "INT33D3") + Name (_CID, "PNP0C60") + Name (_UID, 1) + Name (_DDN, "Laptop/tablet mode indicator driver") + + Method (_STA, 0) + { + Return (0xf) + } +} diff --git a/src/ec/starlabs/merlin/acpi/ec.asl b/src/ec/starlabs/merlin/acpi/ec.asl index 52cab91883..7eec057aa6 100644 --- a/src/ec/starlabs/merlin/acpi/ec.asl +++ b/src/ec/starlabs/merlin/acpi/ec.asl @@ -137,6 +137,7 @@ Scope (\_SB.PCI0.LPCB) #include "battery.asl" #include "events.asl" #include "lid.asl" + #include "dock.asl" Method (_REG, 2, NotSerialized) { diff --git a/src/ec/starlabs/merlin/acpi/hid.asl b/src/ec/starlabs/merlin/acpi/hid.asl index a9de7da559..15f02fcfed 100644 --- a/src/ec/starlabs/merlin/acpi/hid.asl +++ b/src/ec/starlabs/merlin/acpi/hid.asl @@ -351,7 +351,7 @@ Device (HIDD) // HID Device // Case (0x08) { - Return (0x00) + Return (\_SB.PCI0.LPCB.EC.VBTN.VGBS()) } // // Function 9 H2BC. Button implemented state.