>yhlu wrote:
> Good, Please apply at first. we may produce patch regarding with smbus
> for send/receive byte
> ( using CMD byte instead of DAT0)
>

>It's in. please go ahead.


Nvidia MCP55 use CMD to send/receive byte instead of DAT0 , the same as
broadcom/bcm5785. I have write a patch to do this.

signed-off-by : bxshi < [EMAIL PROTECTED]>
===================================================================
--- src/southbridge/nvidia/mcp55/mcp55_smbus.h  (revision 2544)
+++ src/southbridge/nvidia/mcp55/mcp55_smbus.h  (working copy)
@@ -80,9 +80,7 @@
        /* set the device I'm talking too */
        outb(((device & 0x7f) << 1)|1 , smbus_io_base + SMBXMITADD);
        smbus_delay();
-       /* set the command/address... */
-       outb(0, smbus_io_base + SMBHSTCMD);
-       smbus_delay();
+
        /* byte data recv */
        outb(0x05, smbus_io_base + SMBHSTPRTCL);
        smbus_delay();
@@ -95,7 +93,7 @@
        global_status_register = inb(smbus_io_base + SMBHSTSTAT) & 0x80; /* 
lose check */

        /* read results of transaction */
-       byte = inb(smbus_io_base + SMBHSTDAT0);
+       byte = inb(smbus_io_base + SMBHSTCMD);

        if (global_status_register != 0x80) { // lose check, otherwise it 
should be 0
                return -1;
@@ -109,13 +107,14 @@
        outb(val, smbus_io_base + SMBHSTDAT0);
        smbus_delay();

+       /* set the command... */
+        outb(val, smbus_io_base + SMBHSTCMD);
+       smbus_delay();
+
        /* set the device I'm talking too */
        outb(((device & 0x7f) << 1) | 0, smbus_io_base + SMBXMITADD);
        smbus_delay();

-       outb(0, smbus_io_base + SMBHSTCMD);
-       smbus_delay();
-
        /* set up for a byte data write */
        outb(0x04, smbus_io_base + SMBHSTPRTCL);
        smbus_delay();
-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.openbios.org/mailman/listinfo/linuxbios

Reply via email to