2 * embedded controller (usually at ports 0x66/0x62)
5 #include "../port/lib.h"
10 #include "../port/error.h"
17 /* Embedded Controller Status, EC_SC (R) */
25 /* Embedded Controller Command Set */
36 int port[2]; /* EC_SC and EC_DATA */
42 return inb(ec.port[reg]);
45 ecwr(int reg, uchar val)
47 outb(ec.port[reg], val);
51 ecwait(uchar mask, uchar val)
56 for(i=0; i<1000; i++){
62 print("ec: wait timeout status=%x pc=%#p\n", s, getcallerpc(&mask));
67 ecinit(int cmdport, int dataport)
69 print("ec: cmd %X, data %X\n", cmdport, dataport);
71 if(ioalloc(cmdport, 1, 0, "ec.sc") < 0){
72 print("ec: cant allocate cmd port %X\n", cmdport);
75 if(ioalloc(dataport, 1, 0, "ec.data") < 0){
76 print("ec: cant allocate data port %X\n", dataport);
82 ec.port[EC_SC] = cmdport;
83 ec.port[EC_DATA] = dataport;
115 ecwrite(uchar addr, uchar val)