summaryrefslogtreecommitdiff
path: root/src/southbridge/intel/common/smbus.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge/intel/common/smbus.c')
-rw-r--r--src/southbridge/intel/common/smbus.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/southbridge/intel/common/smbus.c b/src/southbridge/intel/common/smbus.c
index 1594e684a6..944e360a0f 100644
--- a/src/southbridge/intel/common/smbus.c
+++ b/src/southbridge/intel/common/smbus.c
@@ -253,7 +253,8 @@ static int smbus_write_cmd(uintptr_t base, u8 ctrl, u8 device, u8 address, u16 d
host_outb(base, SMBHSTCMD, address);
/* Set the data bytes... */
- host_outb(base, SMBHSTDAT0, data & 0xff);
+ if (ctrl >= I801_BYTE_DATA)
+ host_outb(base, SMBHSTDAT0, data & 0xff);
if (ctrl == I801_WORD_DATA)
host_outb(base, SMBHSTDAT1, data >> 8);
@@ -354,6 +355,11 @@ int do_smbus_read_word(uintptr_t base, u8 device, u8 address)
return smbus_read_cmd(base, I801_WORD_DATA, device, address);
}
+int do_smbus_send_byte(uintptr_t base, u8 device, u8 data)
+{
+ return smbus_write_cmd(base, I801_BYTE, device, data, 0x00);
+}
+
int do_smbus_write_byte(uintptr_t base, u8 device, u8 address, u8 data)
{
return smbus_write_cmd(base, I801_BYTE_DATA, device, address, data);