Lanner LEC-7900 User Manual
Page 28

27
*****************************************************
if( strcmp(argv[1], "-wr") == 0 )
{
if( argc != 3 )
{
help();
return -1;
}
time = atoi(argv[2]);
printf("Setting Watchdog timer for System Reset...\n");
set_watchdog(time);
return 0;
}
else
{
help();
return -1;
}
return 0;
}
//;********************* set_watchdog
*****************************************************
int set_watchdog(int time)
{
int temp;
temp = time;
Enter_Configuation();
write_w83627UHG_reg(0x8, 0x30, 0x01);
//;enable LDN8
write_w83627UHG_reg(0x8, 0xf6, temp);
//LDN=8, CRF6, set watchdog
timer time-out value
Exit_Configuation();
return 0;
}
//;********************* Read SIO
*****************************************************
int read_w83627UHG_reg(int LDN, int reg)
{
outportb(INDEX_PORT, 0x07); //LDN register
delay(1);
outportb(DATA_PORT, LDN);
delay(1);
outportb(INDEX_PORT, reg);
delay(1);
return inportb(DATA_PORT);
}
//;********************* Write SIO
*****************************************************
int write_w83627UHG_reg(int LDN, int reg, int value)
{
outportb(INDEX_PORT, 0x07); //LDN register
delay(1);
outportb(DATA_PORT, LDN);
delay(1);
outportb(INDEX_PORT, reg);
delay(1);
outportb(DATA_PORT, value);
return 0;
}
//;********************* Enter SIO
*****************************************************
int Enter_Configuation()
{
outportb(INDEX_PORT, 0x87);
delay(1);
outportb(INDEX_PORT, 0x87);