X201: Enable expresscard hotplug.

Change-Id: Ieefc2ad775c16de9aa974b2602d55ee047c9f568
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/4643
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Vladimir Serbinenko 2014-01-10 19:30:54 +01:00
parent 786c0f5fca
commit 4c8b1ee14a
5 changed files with 39 additions and 0 deletions

View File

@ -27,4 +27,18 @@ Scope (\_GPE)
/* Read EC register to clear wake status */ /* Read EC register to clear wake status */
Store(\_SB.PCI0.LPCB.EC.WAKE, Local0) Store(\_SB.PCI0.LPCB.EC.WAKE, Local0)
} }
Method (_L01, 0, NotSerialized)
{
If (\_SB.PCI0.RP04.HPCS)
{
Sleep (100)
Store (0x01, \_SB.PCI0.RP04.HPCS)
If (\_SB.PCI0.RP04.PDC)
{
Store (0x01, \_SB.PCI0.RP04.PDC)
Notify (\_SB.PCI0.RP04, 0x00)
}
}
}
} }

View File

@ -129,6 +129,11 @@ chip northbridge/intel/nehalem
device pci 1b.0 on # Audio Controller device pci 1b.0 on # Audio Controller
subsystemid 0x17aa 0x215e subsystemid 0x17aa 0x215e
end end
device pci 1c.0 on end # PCIe Port #1
device pci 1c.3 on end # PCIe Port #4 (Expresscard)
device pci 1c.4 on end # PCIe Port #4 (wlan)
device pci 1d.0 on # USB2 EHCI device pci 1d.0 on # USB2 EHCI
subsystemid 0x17aa 0x2163 subsystemid 0x17aa 0x2163
end end

View File

@ -23,6 +23,7 @@
#define BRIGHTNESS_UP \_SB.PCI0.GFX0.LCD0.INCB #define BRIGHTNESS_UP \_SB.PCI0.GFX0.LCD0.INCB
#define BRIGHTNESS_DOWN \_SB.PCI0.GFX0.LCD0.DECB #define BRIGHTNESS_DOWN \_SB.PCI0.GFX0.LCD0.DECB
#define ACPI_VIDEO_DEVICE \_SB.PCI0.GFX0 #define ACPI_VIDEO_DEVICE \_SB.PCI0.GFX0
#define RP04_IS_EXPRESSCARD 1
DefinitionBlock( DefinitionBlock(
"dsdt.aml", "dsdt.aml",

View File

@ -163,6 +163,14 @@ static void mainboard_enable(device_t dev)
*/ */
pc_keyboard_init(0); pc_keyboard_init(0);
verb_setup(); verb_setup();
/* Enable expresscard hotplug events. */
pci_write_config32(dev_find_slot(0, PCI_DEVFN(0x1c, 3)),
0xd8,
pci_read_config32(dev_find_slot(0, PCI_DEVFN(0x1c, 3)), 0xd8)
| (1 << 30));
pci_write_config16(dev_find_slot(0, PCI_DEVFN(0x1c, 3)),
0x42, 0x142);
} }
struct chip_operations mainboard_ops = { struct chip_operations mainboard_ops = {

View File

@ -177,6 +177,17 @@ Device (RP04)
{ {
Return (IRQM (RPPN)) Return (IRQM (RPPN))
} }
#ifdef RP04_IS_EXPRESSCARD
Device (SLOT)
{
Name (_ADR, 0x00)
Method (_RMV, 0, NotSerialized)
{
Return (0x01)
}
}
#endif
} }
Device (RP05) Device (RP05)