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_MIN 0x1c41
|
||||||
#define PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX 0x1c5f
|
#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
|
#define PCI_DEVICE_ID_INTEL_TGP_LPC 0x27bc
|
||||||
|
|
||||||
/* Intel 82801E (C-ICH) */
|
/* Intel 82801E (C-ICH) */
|
||||||
|
|
|
@ -286,11 +286,24 @@ void spi_free_slave(struct spi_slave *_slave)
|
||||||
free(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 &&
|
if (device_id == PCI_DEVICE_ID_INTEL_TGP_LPC)
|
||||||
device_id <= PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX;
|
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)
|
void spi_init(void)
|
||||||
{
|
{
|
||||||
|
@ -313,11 +326,9 @@ void spi_init(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device_id == PCI_DEVICE_ID_INTEL_TGP_LPC) {
|
ich_version = get_ich_version(device_id);
|
||||||
ich_version = 7;
|
|
||||||
} else if (spi_is_cougarpoint_lpc(device_id)) {
|
if (!ich_version) {
|
||||||
ich_version = 9;
|
|
||||||
} else {
|
|
||||||
printk(BIOS_DEBUG, "ICH SPI: No known ICH found.\n");
|
printk(BIOS_DEBUG, "ICH SPI: No known ICH found.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue