diff options
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/i2c/ww_ring/Kconfig | 1 | ||||
-rw-r--r-- | src/drivers/i2c/ww_ring/ww_ring.c | 13 | ||||
-rw-r--r-- | src/drivers/i2c/ww_ring/ww_ring.h | 18 |
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 |