Add support for Panther Point to SPI driver
Change-Id: I98b05d9e639eda880b6e8dc6398413d1f4f5e9c3 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/1048 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
68b5da0e68
commit
691c9f0dab
|
@ -2504,6 +2504,8 @@
|
|||
|
||||
#define PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MIN 0x1c41
|
||||
#define PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX 0x1c5f
|
||||
#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MIN 0x1e41
|
||||
#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MAX 0x1e5d
|
||||
#define PCI_DEVICE_ID_INTEL_TGP_LPC 0x27bc
|
||||
|
||||
/* Intel 82801E (C-ICH) */
|
||||
|
|
|
@ -286,11 +286,24 @@ void spi_free_slave(struct spi_slave *_slave)
|
|||
free(slave);
|
||||
}
|
||||
|
||||
static inline int spi_is_cougarpoint_lpc(uint16_t device_id)
|
||||
/*
|
||||
* Check if this device ID matches one of supported Intel PCH devices.
|
||||
*
|
||||
* Return the ICH version if there is a match, or zero otherwise.
|
||||
*/
|
||||
static inline int get_ich_version(uint16_t device_id)
|
||||
{
|
||||
return device_id >= PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MIN &&
|
||||
device_id <= PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX;
|
||||
};
|
||||
if (device_id == PCI_DEVICE_ID_INTEL_TGP_LPC)
|
||||
return 7;
|
||||
|
||||
if ((device_id >= PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MIN &&
|
||||
device_id <= PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX) ||
|
||||
(device_id >= PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MIN &&
|
||||
device_id <= PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MAX))
|
||||
return 9;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void spi_init(void)
|
||||
{
|
||||
|
@ -313,11 +326,9 @@ void spi_init(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (device_id == PCI_DEVICE_ID_INTEL_TGP_LPC) {
|
||||
ich_version = 7;
|
||||
} else if (spi_is_cougarpoint_lpc(device_id)) {
|
||||
ich_version = 9;
|
||||
} else {
|
||||
ich_version = get_ich_version(device_id);
|
||||
|
||||
if (!ich_version) {
|
||||
printk(BIOS_DEBUG, "ICH SPI: No known ICH found.\n");
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue