|
The LED interface is a simple bit-banging affair. I've uploaded two code fragments that will allow you to control the LEDs on the front from linux. When I have time I'll comment it. :)
#define LED_NONE 0 #define LED_BLUE 0x01 #define LED_RED_1 0x02 #define LED_RED_2 0x04 #define LED_RED_3 0x08 #define LED_GREEN 0x10 #define LED_ALL LED_BLUE|LED_RED_1|LED_RED_2|LED_RED_3|LED_GREEN
//###################################### //Common Code //##################################### static void write_address(char addr,char val){ outb_p(addr,0x2e); outb_p(val,0x2f); }
static int read_address(char addr){ char res; outb_p(addr,0x2e); res = inb_p(0x2f); return res; }
static void enter_handler(void){ outb_p(0x87,0x2e); outb_p(0x01,0x2e); outb_p(0x55,0x2e); outb_p(0x55,0x2e); }
static void exit_handler(void){ outb_p(0x02,0x02); } //############################### //Common Code Ends... //###############################
//############################################# // LED Code //#############################################
static void init_leds(void){ enter_handler(); write_address(7,7); write_address(0x26,0x1f); write_address(0xb1,LED_NONE); exit_handler(); }
static void set_led(char ledmask){ enter_handler(); write_address(7,7); write_address(0xb1,ledmask); exit_handler(); }
//####################################### // LED Code Ends //####################################### |