summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/projects/corsola/src/krabby/led.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/zephyr/projects/corsola/src/krabby/led.c b/zephyr/projects/corsola/src/krabby/led.c
index d07ec46004..7b3aaf095b 100644
--- a/zephyr/projects/corsola/src/krabby/led.c
+++ b/zephyr/projects/corsola/src/krabby/led.c
@@ -3,11 +3,13 @@
* found in the LICENSE file.
*/
+#include "chipset.h"
#include "ec_commands.h"
#include "gpio.h"
+#include "hooks.h"
#include "led_common.h"
#include "led_onoff_states.h"
-#include "chipset.h"
+#include "pwm.h"
__override const int led_charge_lvl_1 = 5;
__override const int led_charge_lvl_2 = 95;
@@ -46,16 +48,29 @@ const enum ec_led_id supported_led_ids[] = {
const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
+const enum pwm_channel LED_POWER_WHITE = NAMED_PWM(ec_led1_odl);
+const enum pwm_channel LED_BATTERY_AMBER = NAMED_PWM(ec_led2_odl);
+const enum pwm_channel LED_BATTERY_WHITE = NAMED_PWM(ec_led3_odl);
+
__override void led_set_color_battery(enum ec_led_colors color)
{
+ pwm_enable(LED_BATTERY_AMBER, color == EC_LED_COLOR_AMBER);
+ pwm_enable(LED_BATTERY_WHITE, color == EC_LED_COLOR_WHITE);
}
__override void led_set_color_power(enum ec_led_colors color)
{
+ pwm_enable(LED_POWER_WHITE, color == EC_LED_COLOR_WHITE);
}
void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
{
+ if (led_id == EC_LED_ID_BATTERY_LED) {
+ brightness_range[EC_LED_COLOR_AMBER] = 1;
+ brightness_range[EC_LED_COLOR_WHITE] = 1;
+ } else if (led_id == EC_LED_ID_POWER_LED) {
+ brightness_range[EC_LED_COLOR_WHITE] = 1;
+ }
}
int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
@@ -77,15 +92,10 @@ int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
return EC_SUCCESS;
}
-__override enum led_states board_led_get_state(enum led_states desired_state)
+void board_led_init(void)
{
- if (desired_state == STATE_BATTERY_ERROR) {
- if (chipset_in_state(CHIPSET_STATE_ON))
- return desired_state;
- else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND))
- return STATE_DISCHARGE_S3;
- else
- return STATE_DISCHARGE_S5;
- }
- return desired_state;
+ pwm_set_duty(LED_POWER_WHITE, 100);
+ pwm_set_duty(LED_BATTERY_AMBER, 100);
+ pwm_set_duty(LED_BATTERY_WHITE, 100);
}
+DECLARE_HOOK(HOOK_INIT, board_led_init, HOOK_PRIO_DEFAULT);