beautypg.com

Lanner LEC-2010 User Manual

Page 59

background image

LEC-2010 Fanless Embedded System User’s Manual

59

help();

return -1;
}

if( strcmp(argv[1], "-wr") == 0 )

{
if( argc != 3 )

{

help();

return -1;
}

write_w83627_reg(0x8, 0xf6, 0);

//LDN=8, CRF6, stop timer first

//clear status bit

write_w83627_reg(0x8, 0xf7, read_w83627_reg(0x8, 0xf7) & 0xef);

time = atoi(argv[2]);

printf("Setting Watchdog timer for System Reset...\n");

set_watchdog(time);

return 0;

}

else

{

help();

return -1;

}

return 0;

}
int set_watchdog(int time)

{

int temp;

outportb(INDEX_PORT, 0x87);

delay(1);

outportb(INDEX_PORT, 0x87);

//Entering

W83627HF Configuration

temp = read_w83627_reg(0, 0x2b);

//LDN=0,

CR2B

temp &= 0xf3;

temp |= 0x04;

write_w83627_reg(0, 0x2b, temp);

//set watchdog pin

write_w83627_reg(0x8,

0xf6,

0);

//LDN=8, CRF6, stop timer first

write_w83627_reg(0x8, 0xf5, read_w83627_reg(0x8, 0xf5) & 0xf7);

//;set

second

write_w83627_reg(0x8, 0xf7, read_w83627_reg(0x8, 0xf7) & 0xef);

//;clear

status

write_w83627_reg(0x8, 0x30, read_w83627_reg(0x8, 0x30) | 0x01);

//;enable

LDN8

temp = time;

write_w83627_reg(0x8,

0xf6,

temp);

//LDN=8, CRF6, set

watchdog timer time-out value

outportb(INDEX_PORT, 0xaa);

//Exit

W83627HF

Configuration

return 0;

}

int read_w83627_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);

}