Smbus Access - MSI MS-CF05-SKU1 User Manual

Industrial computer board
Table of Contents

Advertisement

SMBus Access

3. SMBus Access
The base address of SMBus must know before access.
The relevant bus and device information are as following.
#define IO_SC
#define IO_DA
#define PCIBASEADDRESS
#define PCI_BUS_NUM
#define PCI_DEV_NUM
#define PCI_FUN_NUM
3.1
Get SMBus Base Address
int SMBUS_BASE;
int DATA_ADDR = PCIBASEADDRESS + (PCI_BUS_NUM<<16) +
Outportl
(DATA_ADDR + 0x20, IO_SC);
SMBUS_BASE =
3.2
SMBus_ReadByte (char DEVID, char offset)
Read the value of OFFSET from SMBus device DEVID.
Outportb (LOWORD (
Outportb (LOWORD (
Outportb (LOWORD (
Outportb (LOWORD (
mdelay (20);
while ((Inportl (
_DATA = Inportb (LOWORD (
SMB
3.3
SMBus_WriteByte (char DEVID, char offset, char DATA)
Write DATA to OFFSET on SMBus device DEVID.
Outportb (LOWORD (
Outportb (LOWORD (
Outportb (LOWORD (
Outportb (LOWORD (
Outportb (LOWORD (
mdelay (20);
0xCF8
0xCFC
0x80000000
0
31
4
(PCI_DEV_NUM<<11) +
(PCI_FUN_NUM<<8);
Inportl
(IO_DA) & 0xfffffff0;
), 0xFE);
SMBUS_BASE
) + 0x04, DEVID + 1);
SMBUS_BASE
) + 0x03, OFFSET);
SMBUS_BASE
) + 0x02, 0x48);
SMBUS_BASE
) & 0x01) != 0);
SMBUS_BASE
SMBUS_BASE
), 0xFE);
SMBUS_BASE
) + 0x04, DEVID);
SMBUS_BASE
) + 0x03, OFFSET);
SMBUS_BASE
) + 0x05, DATA);
SMBUS_BASE
) + 0x02, 0x48);
SMBUS_BASE
//out Base + 04, (DEVID + 1)
//out Base + 03, OFFSET
//out Base + 02, 48H
//delay 20ms to let data ready
//wait SMBus ready
) + 0x05);
//input Base + 05
//out Base + 04, (DEVID)
//out Base + 03, OFFSET
//out Base + 05, DATA
GPIO WDT BKL Programming
//out Base + 02, 48H
//wait 20ms
67

Advertisement

Table of Contents
loading

This manual is also suitable for:

Ms-cf05-sku2

Table of Contents