google/eve: Enable keyboard backlight in bootblock

Enable the keyboard backlight as early in boot as possible to
provide a indication that the BIOS is executing.

Since this is bootblock it can't use the convenience function
for checking for S3 resume so just read the PM1 value from the
SOC and check it directly.

Use a value of 75% for the current system as that is visible
without being full brightness.

BUG=chrome-os-partner:61464
TEST=boot on eve and check that keyboard backlight is enabled
as soon as the SOC starts booting

Change-Id: I9ac78e9c3913a2776943088f35142afe3ffef056
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://review.coreboot.org/18197
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Duncan Laurie 2017-01-21 15:42:26 -08:00
parent ba32f0f91c
commit 367c9b328f
1 changed files with 11 additions and 0 deletions

View File

@ -14,9 +14,13 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <arch/io.h>
#include <bootblock_common.h> #include <bootblock_common.h>
#include <ec/google/chromeec/ec.h>
#include <gpio.h> #include <gpio.h>
#include <soc/gpio.h> #include <soc/gpio.h>
#include <soc/iomap.h>
#include <soc/pm.h>
#include "gpio.h" #include "gpio.h"
static void early_config_gpio(void) static void early_config_gpio(void)
@ -26,5 +30,12 @@ static void early_config_gpio(void)
void bootblock_mainboard_init(void) void bootblock_mainboard_init(void)
{ {
uint32_t pm1_cnt = inl(ACPI_BASE_ADDRESS + PM1_CNT);
uint32_t pm1_sts = inl(ACPI_BASE_ADDRESS + PM1_STS);
/* Turn on keyboard backlight to indicate we are booting */
if ((pm1_sts & WAK_STS) && (acpi_sleep_from_pm1(pm1_cnt) != ACPI_S3))
google_chromeec_kbbacklight(75);
early_config_gpio(); early_config_gpio();
} }