soc/amd/stoneyridge: Name IO061 in ASL appropriately

AMD traditionally claims the resource at I/O port 61 for the onboard
PC-AT speaker.  In later designs, the speaker may be omitted in favor
of routing the SPKR signal to the codec.

Some systems implement neither, and for those it is not correct to
identify the resource as a speaker.  Modify the EISAID reported to
the OS depending on the system design.  The default is that port 61
is reported as reserved.  In order to report a speaker, add #define
in mainboard//dsdt.asl.

TEST=check /proc/ioports and iasl -d for both ways using a Grunt
BUG=b:117818432

Change-Id: I33aafb187f9fea7b38aae43c399292c7521fcfc4
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/c/30037
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Marshall Dawson 2018-12-04 11:05:10 -07:00 committed by Patrick Georgi
parent 6a9e6cd89e
commit 8ce51cde94
2 changed files with 9 additions and 1 deletions

View File

@ -13,6 +13,8 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#define MAINBOARD_HAS_SPEAKER 1
/* DefinitionBlock Statement */ /* DefinitionBlock Statement */
#include <arch/acpi.h> #include <arch/acpi.h>
DefinitionBlock ( DefinitionBlock (

View File

@ -13,6 +13,12 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#if IS_ENABLED(MAINBOARD_HAS_SPEAKER)
#define IO61_HID "PNP0800" /* AT style speaker */
#else
#define IO61_HID "PNP0C02" /* reserved resource */
#endif
/* 0:14.3 - LPC */ /* 0:14.3 - LPC */
Device(LPCB) { Device(LPCB) {
Name(_ADR, 0x00140003) Name(_ADR, 0x00140003)
@ -66,7 +72,7 @@ Device(LPCB) {
} /* End Device(_SB.PCI0.LpcIsaBr.TMR) */ } /* End Device(_SB.PCI0.LpcIsaBr.TMR) */
Device(SPKR) { /* Speaker */ Device(SPKR) { /* Speaker */
Name(_HID,EISAID("PNP0800")) /* AT style speaker */ Name(_HID,EISAID(IO61_HID))
Name(_CRS, ResourceTemplate() { Name(_CRS, ResourceTemplate() {
IO(Decode16, 0x0061, 0x0061, 0, 1) IO(Decode16, 0x0061, 0x0061, 0, 1)
}) })