Smbus Access - MSI MS-98H7 Manual

Com express type-6 basic module
Table of Contents

Advertisement

SMBus Access

4. SMBus Access 
The base address of SMBus must be known before access. The relevant bus and device 
information are as following. 
 
#define IO_SC     
#define IO_DA     
#define PCIBASEADDRESS    0x80000000 
#define PCI_BUS_NUM         0 
#define PCI_DEV_NUM         31 
#define PCI_FUN_NUM         
 
4.1
Get SMBus Base Address 
int SMBUS_BASE; 
int DATA_ADDR = PCIBASEADDRESS + (PCI_BUS_NUM<<16) +   
 
 
 
 
                             
Outportl (DATA_ADDR + 0x20, IO_SC); 
SMBUS_BASE = Inportl (IO_DA) & 0xfffffff0; 
 
4.2
SMBus_ReadByte (char DEVID, char OFFSET) 
Read the value of OFFSET from SMBus device DEVID. 
Outportb (LOWORD (SMBUS_BASE), 0xFE); 
Outportb (LOWORD (SMBUS_BASE) + 0x04, DEVID + 1);    // out Base + 04, (DEVID + 1) 
Outportb (LOWORD (SMBUS_BASE) + 0x03, OFFSET);   
Outportb (LOWORD (SMBUS_BASE) + 0x02, 0x48);     
mdelay (20);   
 
while ((Inportl (SMBUS_BASE) & 0x01) != 0);     
SMB_DATA = Inportb (LOWORD (SMBUS_BASE) + 0x05);   
 
4.3
SMBus_WriteByte (char DEVID, char OFFSET, char DATA) 
Write DATA to OFFSET on SMBus device DEVID. 
Outportb (LOWORD (SMBUS_BASE), 0xFE); 
Outportb (LOWORD (SMBUS_BASE) + 0x04, DEVID);   
Outportb (LOWORD (SMBUS_BASE) + 0x03, OFFSET);   
Outportb (LOWORD (SMBUS_BASE) + 0x05, DATA);   
Outportb (LOWORD (SMBUS_BASE) + 0x02, 0x48);     
mdelay (20);   
     
 
        0xCF8 
        0xCFC 
4
 
 
 
    (PCI_DEV_NUM<<11) + 
 
 
    (PCI_FUN_NUM<<8); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// out Base + 03, OFFSET 
// out Base + 02, 48H 
// delay 20ms to let data ready 
// wait SMBus ready 
// input Base + 05 
// out Base + 04, (DEVID) 
// out Base + 03, OFFSET 
// out Base + 05, DATA 
// out Base + 02, 48H 
// wait 20ms 
MS-98H7
A-7

Advertisement

Table of Contents
loading

Table of Contents