Angel Pons | 60ec365 | 2020-04-03 01:22:13 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 2 | Scope (\_SB.PCI0.I2C4) |
| 3 | { |
| 4 | Device (TPAD) |
| 5 | { |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 6 | Name(_ADR, 1) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 7 | Name (_HID, "ALPS0001") |
| 8 | Name (_CID, "PNP0C50") |
| 9 | Name (_DDN, "ALPS Touchpad") |
| 10 | Name (_UID, 1) |
| 11 | Name (ISTP, 1) /* Touchpad */ |
| 12 | Name (_CRS, ResourceTemplate() |
| 13 | { |
| 14 | I2cSerialBus ( |
| 15 | 0x2C, // SlaveAddress |
| 16 | ControllerInitiated, // SlaveMode |
| 17 | 400000, // ConnectionSpeed |
| 18 | AddressingMode7Bit, // AddressingMode |
| 19 | "\\_SB.PCI0.I2C4", // ResourceSource |
| 20 | ) |
| 21 | Interrupt (ResourceConsumer, Level, ActiveLow) |
| 22 | { |
| 23 | GPIO_18_IRQ |
| 24 | } |
| 25 | GpioInt (Level, ActiveLow, ExclusiveAndWake, PullUp, 0x0000, "\\_SB.GPO1", 0x00, ResourceConsumer, ,) |
| 26 | { |
| 27 | 18 |
| 28 | } |
| 29 | }) |
| 30 | |
| 31 | Method (_STA) |
| 32 | { |
| 33 | Return (0xF) |
| 34 | } |
| 35 | Method(_DSM, 0x4, NotSerialized) |
| 36 | { |
| 37 | // DSM UUID for HIDI2C - HID driver does not load without DSM |
Felix Singer | b8762ae | 2022-12-11 20:52:09 +0100 | [diff] [blame] | 38 | If(Arg0 == ToUUID("3CDFF6F7-4267-4555-AD05-B30A3D8938DE")) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 39 | { |
| 40 | // Function 0 : Query Function |
Felix Singer | fa06bcb | 2022-12-26 09:32:47 +0100 | [diff] [blame^] | 41 | If(Arg2 == 0) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 42 | { |
| 43 | // Revision 1 |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 44 | If(Arg1 == 1) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 45 | { |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 46 | Return (Buffer (1) {0x03}) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 47 | } |
| 48 | Else |
| 49 | { |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 50 | Return (Buffer (1) {0x00}) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 51 | } |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 52 | } ElseIf (Arg2 == 1) { // Function 1 : HID Function |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 53 | // HID Descriptor Address (IHV Specific) |
| 54 | Return(0x0020) |
| 55 | } Else { |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 56 | Return (Buffer (1) {0x00}) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 57 | } |
| 58 | } Else { |
Felix Singer | dfbb634 | 2022-12-26 08:39:35 +0100 | [diff] [blame] | 59 | Return (Buffer (1) {0x00}) |
Hannah Williams | d59f62b | 2017-05-05 16:39:21 -0700 | [diff] [blame] | 60 | } |
| 61 | } |
| 62 | } |
| 63 | } |