mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
For an unknown reason, the I2C ACPI devices were placed
under \SB intead of \SB.PCI0, as with all other non-Atom
based Intel platforms. While Linux is tolerant of this,
Windows is not. Correct by moving I2C ACPI devices where
they belong.
Also, adjust I2C devices at board level for intel/strago
and google/cyan as to not break compilation.
BUG=none
BRANCH=none
TEST=none
Change-Id: I39d845ba3b6d07d8bb5f63f663316750f03f20a6
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Original-Commit-Id: 6a67ffb6ea
Original-Change-Id: Iaf8211bd86d6261ee8c4d9c4262338f7fe19ef43
Original-Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Original-Reviewed-on: https://review.coreboot.org/20055
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-on: https://chromium-review.googlesource.com/531193
Commit-Ready: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
242 lines
5.4 KiB
Text
242 lines
5.4 KiB
Text
/*
|
|
* This file is part of the coreboot project.
|
|
*
|
|
* Copyright (C) 2012 Google Inc.
|
|
* Copyright (C) 2015 Intel Corp.
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#include <onboard.h>
|
|
|
|
Scope (\_SB)
|
|
{
|
|
Device (PWRB)
|
|
{
|
|
Name (_HID, EisaId ("PNP0C0C"))
|
|
Name (_UID, 1)
|
|
}
|
|
}
|
|
|
|
Scope (\_SB.PCI0.I2C1)
|
|
{
|
|
Device (ETSA)
|
|
{
|
|
Name (_HID, "ELAN0001")
|
|
Name (_DDN, "Elan Touchscreen ")
|
|
Name (_UID, 5)
|
|
Name (ISTP, 0) /* TouchScreen */
|
|
|
|
Method(_CRS, 0x0, NotSerialized)
|
|
{
|
|
Name(BUF0,ResourceTemplate ()
|
|
{
|
|
I2CSerialBus(
|
|
0x10, /* SlaveAddress */
|
|
ControllerInitiated, /* SlaveMode */
|
|
400000, /* ConnectionSpeed */
|
|
AddressingMode7Bit, /* AddressingMode */
|
|
"\\_SB.PCI0.I2C1", /* ResourceSource */
|
|
)
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPSW") { BOARD_TOUCH_GPIO_INDEX }
|
|
|
|
} )
|
|
Name(BUF1,ResourceTemplate ()
|
|
{
|
|
I2CSerialBus(
|
|
0x10, /* SlaveAddress */
|
|
ControllerInitiated, /* SlaveMode */
|
|
400000, /* ConnectionSpeed */
|
|
AddressingMode7Bit, /* AddressingMode */
|
|
"\\_SB.PCI0.I2C1", /* ResourceSource */
|
|
)
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPNC") { BOARD_EVT_TOUCH_GPIO_INDEX }
|
|
|
|
} )
|
|
If (LEqual (\BDID, BOARD_EVT)) {
|
|
Return (BUF1)
|
|
} Else {
|
|
Return (BUF0)
|
|
}
|
|
}
|
|
|
|
Method (_STA)
|
|
{
|
|
If (LEqual (\S1EN, 1)) {
|
|
Return (0xF)
|
|
} Else {
|
|
Return (0x0)
|
|
}
|
|
}
|
|
|
|
Name (_PRW, Package() { BOARD_TOUCHSCREEN_WAKE_GPIO, 0x3 })
|
|
|
|
/* Allow device to power off in S0 */
|
|
Name (_S0W, 4)
|
|
}
|
|
}
|
|
|
|
Scope (\_SB.PCI0.I2C2)
|
|
{
|
|
/* Maxim Audio Codec */
|
|
Device (MAXM) /* Audio Codec driver I2C */
|
|
{
|
|
Name (_ADR, 0)
|
|
Name (_HID, AUDIO_CODEC_HID)
|
|
Name (_CID, AUDIO_CODEC_CID)
|
|
Name (_DDN, AUDIO_CODEC_DDN)
|
|
Name (_UID, 1)
|
|
|
|
/* Add DT style bindings with _DSD */
|
|
Name (_DSD, Package () {
|
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
|
Package () {
|
|
/* set maxim micbias to 2.8v */
|
|
Package () { "maxim,micbias", 3 },
|
|
}
|
|
})
|
|
|
|
Method(_CRS, 0x0, NotSerialized)
|
|
{
|
|
Name(SBUF,ResourceTemplate ()
|
|
{
|
|
I2CSerialBus(
|
|
AUDIO_CODEC_I2C_ADDR, /* SlaveAddress: bus address */
|
|
ControllerInitiated, /* SlaveMode: default to ControllerInitiated */
|
|
400000, /* ConnectionSpeed: in Hz */
|
|
AddressingMode7Bit, /* Addressing Mode: default to 7 bit */
|
|
"\\_SB.PCI0.I2C2", /* ResourceSource: I2C bus controller name */
|
|
)
|
|
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPSE") { BOARD_JACK_MAXIM_GPIO_INDEX }
|
|
} )
|
|
Return (SBUF)
|
|
}
|
|
|
|
Method (_STA)
|
|
{
|
|
If (LEqual (\S2EN, 1)) {
|
|
Return (0xF)
|
|
} Else {
|
|
Return (0x0)
|
|
}
|
|
}
|
|
}
|
|
Device (TISW) /* TI Switch driver I2C */
|
|
{
|
|
Name (_ADR, 0)
|
|
Name (_HID, TI_SWITCH_HID)
|
|
Name (_CID, TI_SWITCH_CID)
|
|
Name (_DDN, TI_SWITCH_DDN)
|
|
Name (_UID, 1)
|
|
|
|
/* Add DT style bindings with _DSD */
|
|
Name (_DSD, Package () {
|
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
|
Package () {
|
|
/* set ti micbias to 2.8v */
|
|
Package () { "ti,micbias", 7 },
|
|
}
|
|
})
|
|
|
|
Method(_CRS, 0x0, NotSerialized)
|
|
{
|
|
Name(SBUF,ResourceTemplate ()
|
|
{
|
|
I2CSerialBus(
|
|
TI_SWITCH_I2C_ADDR, /* SlaveAddress: bus address */
|
|
ControllerInitiated, /* SlaveMode: default to ControllerInitiated */
|
|
400000, /* ConnectionSpeed: in Hz */
|
|
AddressingMode7Bit, /* Addressing Mode: default to 7 bit */
|
|
"\\_SB.PCI0.I2C2", /* ResourceSource: I2C bus controller name */
|
|
)
|
|
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPSW") { BOARD_JACK_TI_GPIO_INDEX }
|
|
|
|
} )
|
|
Return (SBUF)
|
|
}
|
|
|
|
Method (_STA)
|
|
{
|
|
Return (0xF)
|
|
}
|
|
}
|
|
}
|
|
|
|
Scope (\_SB.PCI0.I2C6)
|
|
{
|
|
Device (ETPA)
|
|
{
|
|
Name (_HID, "ELAN0000")
|
|
Name (_DDN, "Elan Touchpad")
|
|
Name (_UID, 3)
|
|
Name (ISTP, 1) /* Touchpad */
|
|
|
|
Name (_CRS, ResourceTemplate()
|
|
{
|
|
I2cSerialBus (
|
|
0x15, /* SlaveAddress */
|
|
ControllerInitiated, /* SlaveMode */
|
|
400000, /* ConnectionSpeed */
|
|
AddressingMode7Bit, /* AddressingMode */
|
|
"\\_SB.PCI0.I2C6", /* ResourceSource */
|
|
)
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPNC") { BOARD_TRACKPAD_GPIO_INDEX }
|
|
})
|
|
|
|
Method (_STA)
|
|
{
|
|
If (LEqual (\S6EN, 1)) {
|
|
Return (0xF)
|
|
} Else {
|
|
Return (0x0)
|
|
}
|
|
}
|
|
|
|
Name (_PRW, Package() { BOARD_TRACKPAD_WAKE_GPIO, 0x3 })
|
|
|
|
/* Allow device to power off in S0 */
|
|
Name (_S0W, 4)
|
|
}
|
|
}
|
|
|
|
Scope (\_SB.PCI0.LPEA)
|
|
{
|
|
Name (GBUF, ResourceTemplate ()
|
|
{
|
|
/* Jack Detect (index 0) */
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPSE") { BOARD_JACK_MAXIM_GPIO_INDEX }
|
|
})
|
|
}
|
|
|
|
Scope (\_SB.GPNC)
|
|
{
|
|
Method (_AEI, 0, NotSerialized) // _AEI: ACPI Event Interrupts
|
|
{
|
|
Name (RBUF, ResourceTemplate ()
|
|
{
|
|
GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone,,
|
|
"\\_SB.GPNC") { BOARD_SCI_GPIO_INDEX }
|
|
})
|
|
Return (RBUF)
|
|
}
|
|
|
|
Method (_E0F, 0, NotSerialized) // _Exx: Edge-Triggered GPE
|
|
{
|
|
}
|
|
}
|