Luc Verhaegen has uploaded this change for review. ( https://review.coreboot.org/29096
Change subject: ati: add lombok southern island cards ......................................................................
ati: add lombok southern island cards
The other southern island cards have some hack that needs to be tested on real hardware before adding support.
Change-Id: Icffafeafddce4b697211657082a9a0f550ea5fc3 Signed-off-by: Luc Verhaegen libv@skynet.be --- M ati_spi.c 1 file changed, 27 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/96/29096/1
diff --git a/ati_spi.c b/ati_spi.c index 48790d9..1b34c18 100644 --- a/ati_spi.c +++ b/ati_spi.c @@ -35,6 +35,7 @@ #define ATI_SPI_TYPE_RV730 2 #define ATI_SPI_TYPE_EVERGREEN 3 #define ATI_SPI_TYPE_NORTHERN_ISLAND 4 +#define ATI_SPI_TYPE_SOUTHERN_ISLAND 5 int type;
int (*save) (struct flashrom_pci_device *device); @@ -208,10 +209,15 @@ /* disable open drain pads */ mmio_mask(R600_GENERAL_PWRMGT, 0, 0x0800);
- mmio_mask(R600_CTXSW_VID_LOWER_GPIO_CNTL, 0, 0x0400); - mmio_mask(R600_HIGH_VID_LOWER_GPIO_CNTL, 0, 0x0400); - mmio_mask(R600_MEDIUM_VID_LOWER_GPIO_CNTL, 0, 0x0400); - mmio_mask(R600_LOW_VID_LOWER_GPIO_CNTL, 0, 0x0400); + if ((private->type == ATI_SPI_TYPE_R600) || + (private->type == ATI_SPI_TYPE_RV730) || + (private->type == ATI_SPI_TYPE_EVERGREEN) || + (private->type == ATI_SPI_TYPE_NORTHERN_ISLAND)) { + mmio_mask(R600_CTXSW_VID_LOWER_GPIO_CNTL, 0, 0x0400); + mmio_mask(R600_HIGH_VID_LOWER_GPIO_CNTL, 0, 0x0400); + mmio_mask(R600_MEDIUM_VID_LOWER_GPIO_CNTL, 0, 0x0400); + mmio_mask(R600_LOW_VID_LOWER_GPIO_CNTL, 0, 0x0400); + }
if ((private->type == ATI_SPI_TYPE_R600) || (private->type == ATI_SPI_TYPE_RV730)) @@ -390,6 +396,19 @@ .master = &r600_spi_master, };
+/* + * Used by Lombok. + * Verde, Pitcairn, Hainan and Oland are pending. + */ +static const struct ati_spi_pci_private southern_island_spi_pci_private = { + .io_bar = 2, + .type = ATI_SPI_TYPE_SOUTHERN_ISLAND, + .save = r600_spi_save, + .restore = r600_spi_restore, + .enable = r600_spi_enable, + .master = &r600_spi_master, +}; + const struct flashrom_pci_match ati_spi_pci_devices[] = { {0x1002, 0x6704, NT, &northern_island_spi_pci_private}, {0x1002, 0x6707, NT, &northern_island_spi_pci_private}, @@ -429,6 +448,10 @@ {0x1002, 0x6778, NT, &northern_island_spi_pci_private}, {0x1002, 0x6779, NT, &northern_island_spi_pci_private}, {0x1002, 0x677B, NT, &northern_island_spi_pci_private}, + {0x1002, 0x6840, NT, &southern_island_spi_pci_private}, + {0x1002, 0x6841, NT, &southern_island_spi_pci_private}, + {0x1002, 0x6842, NT, &southern_island_spi_pci_private}, + {0x1002, 0x6843, NT, &southern_island_spi_pci_private}, {0x1002, 0x6880, NT, &evergreen_spi_pci_private}, {0x1002, 0x6888, NT, &evergreen_spi_pci_private}, {0x1002, 0x6889, NT, &evergreen_spi_pci_private},