>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