My LPC info: LPC Interface Bridge [8086:27b0] (rev 01), so vendor is 8086, and device ID is 27b0
And this is the LPC section from my DSDT:
CODE
Device (LPC)
{
Name (_ADR, 0x001F0000)
OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
Field (PRR0, AnyAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8
}
OperationRegion (PRR1, PCI_Config, 0x68, 0x04)
Field (PRR1, AnyAcc, NoLock, Preserve)
{
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, One)
Method (_STA, 0, NotSerialized)
{
If (And (PIRA, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRA, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRA, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
If (And (PIRB, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRB, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRB, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
If (And (PIRC, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRC, 0x80, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRC, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRC, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (And (PIRD, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRD, 0x80, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRD, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRD, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRD)
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
If (And (PIRE, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRE, 0x80, PIRE)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRE, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRE, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRE)
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x06)
Method (_STA, 0, NotSerialized)
{
If (And (PIRF, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRF)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRF, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRF, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRF)
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x07)
Method (_STA, 0, NotSerialized)
{
If (And (PIRG, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRG, 0x80, PIRG)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRG, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRG, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRG)
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x08)
Method (_STA, 0, NotSerialized)
{
If (And (PIRH, 0x80))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRH, 0x80, PIRH)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{0}
})
CreateWordField (BUF0, One, IRQW)
If (And (PIRH, 0x80))
{
Store (Zero, Local0)
}
Else
{
Store (One, Local0)
}
ShiftLeft (Local0, And (PIRH, 0x0F), IRQW)
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12}
})
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRQW)
FindSetRightBit (IRQW, Local0)
If (LNotEqual (IRQW, Zero))
{
And (Local0, 0x7F, Local0)
Decrement (Local0)
}
Else
{
Or (Local0, 0x80, Local0)
}
Store (Local0, PIRH)
}
}
The Vendor/Device IDs listed in my AppleLPC.kext include:
CODE
pci8086,2811
pci8086,2815
[b]pci8086,27b9[/b]
pci8086,27bd
pci8086,2670
pci8086,8119
pci8086,2916
pci8086,3a18
pci8086,3b00
pci8086,3b01
pci8086,3b02
pci8086,3b09
pci8086,2815
[b]pci8086,27b9[/b]
pci8086,27bd
pci8086,2670
pci8086,8119
pci8086,2916
pci8086,3a18
pci8086,3b00
pci8086,3b01
pci8086,3b02
pci8086,3b09
From that I can see that pic8086,27b9 would be the closest match to mine.
So ..... what next
I've attached my full CPUZ output, along with my current DSDT.dsl
Click to view attachment
Click to view attachment
