amd/acpi: Clean up SMBus references.

Replace the AMD SMBus section with the equivalent SB800 smbus.asl
include or remove already commented-out sections.

Verified by running the cpp preprocessor over the DSDTs and diffing the
results against this patch.

The only change is in src/mainboard/siemens/sitemp_g1p1/dsdt.asl, where
someone added RADD and SADD to the OpRegion, but those are unused, so
removing them is fine.

Change-Id: I074c8a1ed1c9a944d4988752bd0fc42c199c766c
Signed-off-by: Tobias Diedrich <ranma+coreboot@tdiedrich.de>
Reviewed-on: http://review.coreboot.org/10618
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Tobias Diedrich
2015-06-21 18:58:30 +02:00
committed by Patrick Georgi
parent 9bb09526fa
commit a4d179af56
26 changed files with 20 additions and 2875 deletions

View File

@@ -1700,100 +1700,7 @@ DefinitionBlock (
}
} /* End Scope SI */
/* SMBUS Support */
Mutex (SBX0, 0x00)
OperationRegion (SMB0, SystemIO, 0xB00, 0x0C)
Field (SMB0, ByteAcc, NoLock, Preserve) {
HSTS, 8, /* SMBUS status */
SSTS, 8, /* SMBUS slave status */
HCNT, 8, /* SMBUS control */
HCMD, 8, /* SMBUS host cmd */
HADD, 8, /* SMBUS address */
DAT0, 8, /* SMBUS data0 */
DAT1, 8, /* SMBUS data1 */
BLKD, 8, /* SMBUS block data */
SCNT, 8, /* SMBUS slave control */
SCMD, 8, /* SMBUS shadow cmd */
SEVT, 8, /* SMBUS slave event */
SDAT, 8 /* SMBUS slave data */
}
Method (WCLR, 0, NotSerialized) { /* clear SMBUS status register */
Store (0x1E, HSTS)
Store (0xFA, Local0)
While (LAnd (LNotEqual (And (HSTS, 0x1E), Zero), LGreater (Local0, Zero))) {
Stall (0x64)
Decrement (Local0)
}
Return (Local0)
}
Method (SWTC, 1, NotSerialized) {
Store (Arg0, Local0)
Store (0x07, Local2)
Store (One, Local1)
While (LEqual (Local1, One)) {
Store (And (HSTS, 0x1E), Local3)
If (LNotEqual (Local3, Zero)) { /* read sucess */
If (LEqual (Local3, 0x02)) {
Store (Zero, Local2)
}
Store (Zero, Local1)
}
Else {
If (LLess (Local0, 0x0A)) { /* read failure */
Store (0x10, Local2)
Store (Zero, Local1)
}
Else {
Sleep (0x0A) /* 10 ms, try again */
Subtract (Local0, 0x0A, Local0)
}
}
}
Return (Local2)
}
Method (SMBR, 3, NotSerialized) {
Store (0x07, Local0)
If (LEqual (Acquire (SBX0, 0xFFFF), Zero)) {
Store (WCLR (), Local0) /* clear SMBUS status register before read data */
If (LEqual (Local0, Zero)) {
Release (SBX0)
Return (0x0)
}
Store (0x1F, HSTS)
Store (Or (ShiftLeft (Arg1, One), One), HADD)
Store (Arg2, HCMD)
If (LEqual (Arg0, 0x07)) {
Store (0x48, HCNT) /* read byte */
}
Store (SWTC (0x03E8), Local1) /* 1000 ms */
If (LEqual (Local1, Zero)) {
If (LEqual (Arg0, 0x07)) {
Store (DAT0, Local0)
}
}
Else {
Store (Local1, Local0)
}
Release (SBX0)
}
/* DBGO("the value of SMBusData0 register ") */
/* DBGO(Arg2) */
/* DBGO(" is ") */
/* DBGO(Local0) */
/* DBGO("\n") */
Return (Local0)
}
#include <southbridge/amd/cimx/sb800/acpi/smbus.asl>
/* THERMAL */
Scope(\_TZ) {