AAEON TKS-G20-LN05 Rev.B User Manual
Page 56
E m b e d d e d C o n t r o l l e r
T K S - G 2 0 - L N 0 5 R e v . 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)
{