aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/i2c/ww_ring
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/i2c/ww_ring')
-rw-r--r--src/drivers/i2c/ww_ring/Kconfig1
-rw-r--r--src/drivers/i2c/ww_ring/ww_ring.c13
-rw-r--r--src/drivers/i2c/ww_ring/ww_ring.h18
3 files changed, 17 insertions, 15 deletions
diff --git a/src/drivers/i2c/ww_ring/Kconfig b/src/drivers/i2c/ww_ring/Kconfig
index 67a12eb50b..c671871031 100644
--- a/src/drivers/i2c/ww_ring/Kconfig
+++ b/src/drivers/i2c/ww_ring/Kconfig
@@ -1,3 +1,2 @@
config DRIVERS_I2C_WW_RING
bool
- depends on CHROMEOS
diff --git a/src/drivers/i2c/ww_ring/ww_ring.c b/src/drivers/i2c/ww_ring/ww_ring.c
index e1f255a858..243543a021 100644
--- a/src/drivers/i2c/ww_ring/ww_ring.c
+++ b/src/drivers/i2c/ww_ring/ww_ring.c
@@ -114,7 +114,7 @@ typedef struct {
/* A structure to bind controller programs to a vboot state. */
typedef struct {
- enum VbScreenType_t vb_screen;
+ enum display_pattern led_pattern;
const TiLp55231Program * programs[WW_RING_NUM_LED_CONTROLLERS];
} WwRingStateProg;
@@ -143,8 +143,7 @@ static const WwRingStateProg state_programs[] = {
* for test purposes the blank screen program is set to blinking, will
* be changed soon.
*/
- {VB_SCREEN_BLANK, {&led_blink_program, &led_blink_program} },
- /* Other vboot state programs are coming. */
+ {WWR_ALL_OFF, {&led_blink_program, &led_blink_program} },
};
/* */
/****************************************************************/
@@ -388,7 +387,7 @@ static int ledc_init_validate(TiLp55231 *ledc)
* Find a program matching screen type, and run it on both controllers, if
* found.
*/
-int ww_ring_display_pattern(unsigned i2c_bus, enum VbScreenType_t screen_type)
+int ww_ring_display_pattern(unsigned i2c_bus, enum display_pattern pattern)
{
int i;
static int initted;
@@ -399,7 +398,7 @@ int ww_ring_display_pattern(unsigned i2c_bus, enum VbScreenType_t screen_type)
}
for (i = 0; i < ARRAY_SIZE(state_programs); i++)
- if (state_programs[i].vb_screen == screen_type) {
+ if (state_programs[i].led_pattern == pattern) {
int j;
for (j = 0; j < WW_RING_NUM_LED_CONTROLLERS; j++) {
@@ -411,8 +410,8 @@ int ww_ring_display_pattern(unsigned i2c_bus, enum VbScreenType_t screen_type)
return 0;
}
- printk(BIOS_WARNING, "%s: did not find program for screen %d\n",
- __func__, screen_type);
+ printk(BIOS_WARNING, "%s: did not find program for pattern %d\n",
+ __func__, pattern);
return -1;
}
diff --git a/src/drivers/i2c/ww_ring/ww_ring.h b/src/drivers/i2c/ww_ring/ww_ring.h
index 628cd6c504..d2804ed46e 100644
--- a/src/drivers/i2c/ww_ring/ww_ring.h
+++ b/src/drivers/i2c/ww_ring/ww_ring.h
@@ -14,17 +14,21 @@
#ifndef __SRC_DRIVERS_VIDEO_WW_RING__H__
#define __SRC_DRIVERS_VIDEO_WW_RING__H__
-#if IS_ENABLED(CONFIG_CHROMEOS)
-#include <vboot_api.h>
-
+/*
+ * Different types of display patterns to be shown by the LED ring while
+ * contrlled by coreboot.
+ */
+enum display_pattern {
+ WWR_ALL_OFF, /* Turn the LEDs off. */
+ WWR_RECOVERY_PUSHED, /* Recovery button push detected on start up. */
+ WWR_WIPEOUT_REQUEST, /* Held long enough for wipout request. */
+ WWR_RECOVERY_REQUEST, /* Held long enough for recovery request. */
+};
/*
* ww_ring_display_pattern
*
* Display pattern on the ring LEDs.
*/
-int ww_ring_display_pattern(unsigned i2c_bus, enum VbScreenType_t screen_type);
+int ww_ring_display_pattern(unsigned i2c_bus, enum display_pattern pattern);
-#else
-static inline int ww_ring_display_pattern(unsigned i2c_bus, int screen_type) { return 0;}
-#endif
#endif