Embedded Controller - MSI MS-98H7 Manual

Com express type-6 basic module
Table of Contents

Advertisement

GPIO WDT BKL Programming

Embedded Controller

5. Embedded Controller – EC Access 
The relevant control information are as following. 
#EC_CMD_PORT   
#EC_DATA_PORT 
#EC_DELAY 
#EC_STAT_OBF   
#EC_STAT_IBF       
 
5.1
WaitPortStatus (char BITS, bool ONOFF) 
int time=0, tick= EC_DELAY; 
bool state; 
for (time = 0; time < EC_DELAY*100; time += tick) 
 
udelay (
 
 
 
 
char data= Inportb (EC_CMD_PORT);
state = ((data & BITS) !=0 );   
 
 
 
if (state == ONOFF) {       
 
 
 
                           
 
 
 
        }
         
 
 
5.2
EC_ReadByte (char OFFSET) 
Read the value from OFFSET of EC RAM. 
WaitPortStatus (EC_STAT_IBF, false); 
Outportb (EC_CMD_PORT, 0x80);   
WaitPortStatus (EC_STAT_IBF, false); 
Outportb (EC_DATA_PORT, OFFSET); 
WaitPortStatus (EC_STAT_OBF, true); 
EC_DATA = Inportb (EC_DATA_PORT);     
 
5.3
EC_WriteByte (char OFFSET, char DATA) 
Write DATA to OFFSET of EC RAM. 
WaitPortStatus (EC_STAT_IBF, false); 
Outportb (EC_CMD_PORT, 0x81);     
WaitPortStatus (EC_STAT_IBF, false); 
Outportb (EC_DATA_PORT, OFFSET); 
WaitPortStatus (EC_STAT_IBF, false); 
Outportb (EC_DATA_PORT, DATA);   
WaitPortStatus (EC_STAT_IBF, false); 
A-8
0x66   
 
0x62   
 
 
100 
0x1   
 
0x2   
 
); 
   
 
EC_DELAY
break; 
 
 
// EC command port 
 
 
// EC data port 
 
 
// bit 0: OBF 
 
 
// bit 1: IBF 
// *100 is the loop count to avoid infinite wait 
 
 
// Delay 100us to let data ready 
 
 
 
// Check EC status of desired bits 
 
 
// Wait IBF = 0 
 
 
// 0x80: EC read command 
 
 
// Wait IBF = 0 
 
 
// Write OFFSET to EC_DATA_PORT 
 
 
// Wait OBF = 1 
 
// Get value from EC_DATA_PORT 
 
 
// Wait IBF = 0 
 
 
// 0x81: EC write command 
 
 
// Wait IBF = 0 
 
 
// Write OFFSET to EC_DATA_PORT 
 
 
// Wait IBF = 0 
 
 
// Write DATA to EC_DATA_PORT 
 
 
// Wait IBF = 0 

Advertisement

Table of Contents
loading

Table of Contents