]> rtime.felk.cvut.cz Git - lincan.git/blob - lincan/src/temp.c
dceec0c9adce81df2cdf077974ab0cdae733c20f
[lincan.git] / lincan / src / temp.c
1 {
2         int i=0;
3
4         DEBUGMSG("Resetting smartcan hardware ...\n");
5         outb(0x00,candevices_p[card]->res_addr);
6         while (i < 1000000) {
7                 i++;
8                 outb(0x01,candevices_p[card]->res_addr);
9         }
10         outb(0x00,candevices_p[card]->res_addr); 
11
12         /* Check hardware reset status */
13         i=0;
14         outb(candevices_p[card]->io_addr+iCPU,candevices_p[card]->io_addr);
15         while ( (inb(candevices_p[card]->io_addr+1)&0x80) && (i<=15) ) {
16                 udelay(20000);
17                 i++;
18         }
19         if (i>=15) {
20                 CANMSG("Reset status timeout!\n");
21                 CANMSG("Please check your hardware.\n");
22                 return -ENODEV;
23         }
24         else
25                 DEBUGMSG("Chip0 reset status ok.\n");
26
27         return 0;
28