Scope (_SB.PCI0.I2C1)
{
Device (ETPD)
{
Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0055
}
})
Name (_ADR, One) // _ADR: Address
Name (ETPH, Package (0x16)
{
"ELAN1200",
"ELAN1201",
"ELAN1203",
"ELAN1200",
"ELAN1201",
"ELAN1300",
"ELAN1301",
"ELAN1300",
"ELAN1301",
"ELAN1000",
"ELAN1200",
"ELAN1200",
"ELAN1200",
"ELAN1200",
"ELAN1200",
"ELAN1203",
"ELAN1203",
"ELAN1201",
"ELAN1300",
"ELAN1300",
"ELAN1200",
"ELAN1300"
})
Name (FTPH, Package (0x05)
{
"FTE1001",
"FTE1200",
"FTE1200",
"FTE1300",
"FTE1300"
})
Method (_HID, 0, NotSerialized) // _HID: Hardware ID
{
If (And (TPDI, 0x04))
{
Return (DerefOf (Index (ETPH, TPHI)))
}
If (And (TPDI, 0x10))
{
Return (DerefOf (Index (FTPH, TPHI)))
}
Return ("ELAN1010")
}
Name (_CID, "PNP0C50") // _CID: Compatible ID
Name (_UID, One) // _UID: Unique ID
Name (_S0W, 0x03) // _S0W: S0 Device Wake State
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LEqual (Arg0, ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
{
If (LEqual (Arg2, Zero))
{
If (LEqual (Arg1, One))
{
Return (Buffer (One)
{
0x03
})
}
Else
{
Return (Buffer (One)
{
0x00
})
}
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
Else
{
Return (Buffer (One)
{
0x00
})
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (SBFB, ResourceTemplate ()
{
I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.I2C1",
0x00, ResourceConsumer, , Exclusive,
)
})
Return (ConcatenateResTemplate (SBFB, SBFG))
}
}
}