Luc Verhaegen.
>From 66aeca8331e68d922277694c6905756df2a68cab Mon Sep 17 00:00:00 2001
From: Luc Verhaegen <[email protected]>
Date: Mon, 21 Dec 2009 16:43:19 +0100
Subject: [PATCH] Boards: Fix several issues with nvidia_mcp_gpio_set.

- CK804, MCP04, MCP2 use the isa bridges..
- Newer nvidia mcp's do use the smbus controllers (Found by
  Michael Karcher).
- gpio line check breaks EPoX EP-8RDA3+, and should be wider.

Signed-off-by: Luc Verhaegen <[email protected]>
---
 board_enable.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/board_enable.c b/board_enable.c
index 8b5ed95..2c58927 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -440,20 +440,30 @@ static int nvidia_mcp_gpio_set(int gpio, int raise)
        uint16_t base;
        uint8_t tmp;
 
-       if ((gpio < 0) || (gpio > 31)) {
+       if ((gpio < 0) || (gpio > 0x40)) {
                fprintf(stderr, "\nERROR: unsupported GPIO: %d.\n", gpio);
                return -1;
        }
 
-       dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
+       /* First, check the ISA Bridge */
+       dev = pci_dev_find_vendorclass(0x10DE, 0x0601);
        switch (dev->device_id) {
        case 0x0030: /* CK804 */
        case 0x0050: /* MCP04 */
        case 0x0060: /* MCP2 */
                break;
        default:
-               fprintf(stderr, "\nERROR: no nVidia SMBus controller found.\n");
+           /* Newer MCPs use the SMBus Controller */
+           dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
+           switch (dev->device_id) {
+           case 0x0264: /* MCP51 */
+               break;
+           default:
+               fprintf(stderr,
+                       "\nERROR: no nVidia LPC/SMBus controller found.\n");
                return -1;
+           }
+           break;
        }
 
        base = pci_read_long(dev, 0x64) & 0x0000FF00; /* System control area */
-- 
1.6.0.2

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to