| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* This file is part of the coreboot project. */ |
| |
| Scope (\_SB.PCI0.I2C0) |
| { |
| Device (ETPA) |
| { |
| Name (_HID, "ELAN0000") |
| Name (_DDN, "Elan Touchpad") |
| Name (_UID, 1) |
| Name (ISTP, 1) // Touchpad |
| |
| Name (_CRS, ResourceTemplate() |
| { |
| I2cSerialBus ( |
| 0x15, // SlaveAddress |
| ControllerInitiated, // SlaveMode |
| 400000, // ConnectionSpeed |
| AddressingMode7Bit, // AddressingMode |
| "\\_SB.PCI0.I2C0" // ResourceSource |
| ) |
| Interrupt (ResourceConsumer, Level, ActiveLow) |
| { |
| BOARD_TRACKPAD_IRQ |
| } |
| }) |
| |
| Method (_STA) |
| { |
| If (LEqual (\S1EN, 1)) { |
| Return (0xF) |
| } Else { |
| Return (0x0) |
| } |
| } |
| |
| Name (_PRW, Package() { BOARD_TRACKPAD_WAKE_GPIO, 0x3 }) |
| |
| Method (_DSW, 3, NotSerialized) |
| { |
| Store (BOARD_TRACKPAD_WAKE_GPIO, Local0) |
| If (LEqual (Arg0, 1)) { |
| // Enable GPIO as wake source |
| \_SB.PCI0.LPCB.GWAK (Local0) |
| } |
| } |
| } |
| Device (CTPA) |
| { |
| Name (_HID, "CYAP0000") |
| Name (_DDN, "Cypress Touchpad") |
| Name (_UID, 3) |
| Name (ISTP, 1) // Touchpad |
| |
| Name (_CRS, ResourceTemplate() |
| { |
| I2cSerialBus ( |
| 0x67, // SlaveAddress |
| ControllerInitiated, // SlaveMode |
| 400000, // ConnectionSpeed |
| AddressingMode7Bit, // AddressingMode |
| "\\_SB.PCI0.I2C0" // ResourceSource |
| ) |
| Interrupt (ResourceConsumer, Edge, ActiveLow) |
| { |
| BOARD_TRACKPAD_IRQ |
| } |
| }) |
| |
| Method (_STA) |
| { |
| If (LEqual (\S1EN, 1)) { |
| Return (0xF) |
| } Else { |
| Return (0x0) |
| } |
| } |
| |
| Name (_PRW, Package() { BOARD_TRACKPAD_WAKE_GPIO, 0x3 }) |
| |
| Method (_DSW, 3, NotSerialized) |
| { |
| Store (BOARD_TRACKPAD_WAKE_GPIO, Local0) |
| If (LEqual (Arg0, 1)) { |
| // Enable GPIO as wake source |
| \_SB.PCI0.LPCB.GWAK (Local0) |
| } |
| } |
| |
| // Allow device to power off in S0 |
| Name (_S0W, 4) |
| } |
| } |
| Scope (\_SB.PCI0.I2C1) |
| { |
| Device (ATSA) |
| { |
| Name (_HID, "ATML0001") |
| Name (_DDN, "Atmel Touchscreen") |
| Name (_UID, 5) |
| Name (_S0W, 4) |
| Name (ISTP, 0) /* TouchScreen */ |
| Name (GPIO, 25) |
| Name (_CRS, ResourceTemplate() |
| { |
| I2cSerialBus ( |
| 0x4a, // SlaveAddress |
| ControllerInitiated, // SlaveMode |
| 400000, // ConnectionSpeed |
| AddressingMode7Bit, // AddressingMode |
| "\\_SB.PCI0.I2C1" // ResourceSource |
| ) |
| |
| // GPIO54 (ball L3) is PIRQW: PIRQL_GSI + PIRQL - PIRQW = PIRQW_GSI |
| // 27 + 3 - 14 = 38 |
| Interrupt (ResourceConsumer, Edge, ActiveLow) { 38 } |
| }) |
| |
| Name (_PRW, Package() { BOARD_TOUCHSCREEN_WAKE_GPIO, 0x3 }) |
| |
| Method (_DSW, 3, NotSerialized) |
| { |
| Store (BOARD_TOUCHSCREEN_WAKE_GPIO, Local0) |
| If (LEqual (Arg0, 1)) { |
| // Enable GPIO as wake source |
| \_SB.PCI0.LPCB.GWAK (Local0) |
| } |
| } |
| |
| Name (_DSD, Package () { |
| ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), |
| Package () { |
| Package () {"compatible", "atmel,maxtouch"}, |
| } |
| }) |
| |
| Method (_STA) |
| { |
| If (LEqual (\S2EN, 1)) { |
| Return (0xF) |
| } Else { |
| Return (0x0) |
| } |
| } |
| } |
| } |