Add System76 ACPI device to kabylake
This commit is contained in:
@ -36,18 +36,23 @@ Device (EC)
|
|||||||
#include "acpi/ec_ram.asl"
|
#include "acpi/ec_ram.asl"
|
||||||
|
|
||||||
Name (ECOK, Zero)
|
Name (ECOK, Zero)
|
||||||
Method (_REG, 2, NotSerialized) // _REG: Region Availability
|
Method (_REG, 2, Serialized) // _REG: Region Availability
|
||||||
{
|
{
|
||||||
Store ("EC: _REG", Debug)
|
Store ("EC: _REG", Debug)
|
||||||
If (((Arg0 == 0x03) && (Arg1 == One)))
|
If (((Arg0 == 0x03) && (Arg1 == One))) {
|
||||||
{
|
// Enable software touchpad lock and airplane mode keys
|
||||||
ECOK = Arg1
|
ECOS = 2
|
||||||
ECOS = One
|
|
||||||
WINF = One
|
|
||||||
|
|
||||||
|
// Enable software backlight keys
|
||||||
|
WINF = 1
|
||||||
|
|
||||||
|
// Set current AC state
|
||||||
^^^^AC.ACFG = ADP
|
^^^^AC.ACFG = ADP
|
||||||
|
|
||||||
PNOT ()
|
PNOT ()
|
||||||
|
|
||||||
|
// EC is now available
|
||||||
|
ECOK = Arg1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,8 +168,15 @@ Device (EC)
|
|||||||
Notify (PWRB, 0x80)
|
Notify (PWRB, 0x80)
|
||||||
}
|
}
|
||||||
|
|
||||||
Method (_Q50, 0, NotSerialized) // TODO
|
Method (_Q50, 0, NotSerialized) // Other Events
|
||||||
{
|
{
|
||||||
Store ("EC: 50", Debug)
|
Local0 = OEM4
|
||||||
|
If (Local0 == 0x8A) { // White Keyboard Backlight
|
||||||
|
Store ("EC: White Keyboard Backlight", Debug)
|
||||||
|
Notify (^^^^S76D, 0x80)
|
||||||
|
} Else {
|
||||||
|
Store ("EC: Other", Debug)
|
||||||
|
Store (Local0, Debug)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ Device (LID0)
|
|||||||
{
|
{
|
||||||
If (^^PCI0.LPCB.EC.ECOK)
|
If (^^PCI0.LPCB.EC.ECOK)
|
||||||
{
|
{
|
||||||
Return (\_SB.PCI0.LPCB.EC.LSTE)
|
Return (^^PCI0.LPCB.EC.LSTE)
|
||||||
}
|
}
|
||||||
Else
|
Else
|
||||||
{
|
{
|
||||||
|
@ -20,4 +20,5 @@ Scope (\_SB)
|
|||||||
#include "buttons.asl"
|
#include "buttons.asl"
|
||||||
#include "hid.asl"
|
#include "hid.asl"
|
||||||
#include "lid.asl"
|
#include "lid.asl"
|
||||||
|
#include "s76.asl"
|
||||||
}
|
}
|
||||||
|
61
src/mainboard/system76/kbl-u/acpi/s76.asl
Normal file
61
src/mainboard/system76/kbl-u/acpi/s76.asl
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 System76
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; version 2 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
Device (S76D) {
|
||||||
|
Name (_HID, "17761776")
|
||||||
|
Name (_UID, 0)
|
||||||
|
|
||||||
|
// Get Airplane LED
|
||||||
|
Method (GAPL, 0, Serialized) {
|
||||||
|
If (^^PCI0.LPCB.EC.ECOK) {
|
||||||
|
If (^^PCI0.LPCB.EC.AIRP & 0x40) {
|
||||||
|
Return (1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Return (0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set Airplane LED
|
||||||
|
Method (SAPL, 1, Serialized) {
|
||||||
|
If (^^PCI0.LPCB.EC.ECOK) {
|
||||||
|
If (Arg0) {
|
||||||
|
^^PCI0.LPCB.EC.AIRP |= 0x40
|
||||||
|
} Else {
|
||||||
|
^^PCI0.LPCB.EC.AIRP &= 0xBF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get KB LED
|
||||||
|
Method (GKBL, 0, Serialized) {
|
||||||
|
Local0 = 0
|
||||||
|
If (^^PCI0.LPCB.EC.ECOK) {
|
||||||
|
^^PCI0.LPCB.EC.FDAT = One
|
||||||
|
^^PCI0.LPCB.EC.FCMD = 0xCA
|
||||||
|
Local0 = ^^PCI0.LPCB.EC.FBUF
|
||||||
|
^^PCI0.LPCB.EC.FCMD = Zero
|
||||||
|
}
|
||||||
|
Return (Local0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set KB Led
|
||||||
|
Method (SKBL, 1, Serialized) {
|
||||||
|
If (^^PCI0.LPCB.EC.ECOK) {
|
||||||
|
^^PCI0.LPCB.EC.FDAT = Zero
|
||||||
|
^^PCI0.LPCB.EC.FBUF = Arg0
|
||||||
|
^^PCI0.LPCB.EC.FCMD = 0xCA
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -36,7 +36,6 @@ Device (EC)
|
|||||||
#include "acpi/ec_ram.asl"
|
#include "acpi/ec_ram.asl"
|
||||||
|
|
||||||
Name (ECOK, Zero)
|
Name (ECOK, Zero)
|
||||||
Name (TPSE, Zero)
|
|
||||||
Method (_REG, 2, Serialized) // _REG: Region Availability
|
Method (_REG, 2, Serialized) // _REG: Region Availability
|
||||||
{
|
{
|
||||||
Store ("EC: _REG", Debug)
|
Store ("EC: _REG", Debug)
|
||||||
|
Reference in New Issue
Block a user