Set ledout and mode registers
This commit is contained in:
parent
a90b2a8c67
commit
7a30eadebe
@ -4,6 +4,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
void kbled_init(void);
|
||||
void kbled_reset(void);
|
||||
uint8_t kbled_get(void);
|
||||
void kbled_set(uint8_t level);
|
||||
void kbled_set_color(uint32_t color);
|
||||
|
@ -16,8 +16,23 @@ static uint8_t __code levels[] = {
|
||||
|
||||
void kbled_init(void) {
|
||||
i2c_reset(&I2C_KBLED, true);
|
||||
}
|
||||
|
||||
void kbled_reset(void) {
|
||||
kbled_set(0xFF);
|
||||
kbled_set_color(0xFFFFFF);
|
||||
|
||||
// Enable output of channel 0 - 8
|
||||
uint8_t value = 0xFF;
|
||||
kbled_i2c_set(0x14, &value, 1);
|
||||
value = 0xFF;
|
||||
kbled_i2c_set(0x15, &value, 1);
|
||||
value = 0x03;
|
||||
kbled_i2c_set(0x16, &value, 1);
|
||||
|
||||
// Exit sleep mode
|
||||
value = 0;
|
||||
kbled_i2c_set(0x00, &value, 1);
|
||||
}
|
||||
|
||||
uint8_t kbled_get(void) {
|
||||
@ -41,16 +56,19 @@ void kbled_set(uint8_t level) {
|
||||
}
|
||||
|
||||
void kbled_set_color(uint32_t color) {
|
||||
// Set channel 0 - 2 to blue component
|
||||
uint8_t b = (uint8_t)(color);
|
||||
kbled_i2c_set(0x02, &b, 1);
|
||||
kbled_i2c_set(0x03, &b, 1);
|
||||
kbled_i2c_set(0x04, &b, 1);
|
||||
|
||||
// Set channel 3 - 5 to green component
|
||||
uint8_t g = (uint8_t)(color >> 8);
|
||||
kbled_i2c_set(0x05, &g, 1);
|
||||
kbled_i2c_set(0x06, &g, 1);
|
||||
kbled_i2c_set(0x07, &g, 1);
|
||||
|
||||
// Set channel 6 - 8 to red component
|
||||
uint8_t r = (uint8_t)(color >> 16);
|
||||
kbled_i2c_set(0x08, &r, 1);
|
||||
kbled_i2c_set(0x09, &r, 1);
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <arch/time.h>
|
||||
#include <board/battery.h>
|
||||
#include <board/gpio.h>
|
||||
#include <board/kbled.h>
|
||||
#include <board/lid.h>
|
||||
#include <board/power.h>
|
||||
#include <board/pmc.h>
|
||||
@ -283,6 +284,8 @@ void power_event(void) {
|
||||
// LPC was just reset, enable PNP devices
|
||||
pnp_enable();
|
||||
//TODO: reset KBC and touchpad states
|
||||
|
||||
kbled_reset();
|
||||
}
|
||||
rst_last = rst_new;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user