User Manual

Embedded Controller TKS-G20-LN05 Rev.B
Appendix B DIO B-8
return -1;
}
int SMBusRead(unsigned int SMBus_Base, int DeviceID, int
REG_DATA_OFFSET)
{
unsigned char read_data;
// outportb(SMBus_Base+SMBUS_REG_COMMAND, 0x00);
//Clear previous commands
SMBusCheckReady( SMBus_Base );
outportb(SMBus_Base+SMBUS_REG_DID_RW, DeviceID +
SMBUS_DATA_READ); //ID cmd(read)
IO_Delay(1);
IO_Delay(1);
SMBusClearStatus(SMBus_Base);
outportb(SMBus_Base+SMBUS_REG_DATA_OFFSET,
REG_DATA_OFFSET); //Index
IO_Delay(1);
IO_Delay(1);
outportb(SMBus_Base+SMBUS_REG_COMMAND,
SMBUS_CMD_START+SMBUS_CMD_CMD_RW); //Read data
IO_Delay(500);
SMBusCheckReady( SMBus_Base ); //IO_Delay(1000);
read_data = inportb(SMBus_Base+SMBUS_REG_HST_D0);
//Data0
IO_Delay(1);
IO_Delay(1);
return read_data;
}
int SMBusWrite(unsigned int SMBus_Base, int DeviceID, int
REG_DATA_OFFSET, int data)
{