diff options
author | Vladimir Serbinenko <phcoder@gmail.com> | 2014-01-12 15:19:50 +0100 |
---|---|---|
committer | Vladimir Serbinenko <phcoder@gmail.com> | 2014-01-12 18:04:27 +0100 |
commit | f3c3dae580d92feba8fe07f407c89843ea9721cc (patch) | |
tree | 4557991ca30887eda42f127c4ac1a84212df55e5 | |
parent | eada34faaa19766ed9e1584130b1a99491f47487 (diff) | |
download | coreboot-f3c3dae580d92feba8fe07f407c89843ea9721cc.tar.xz |
ec/lenovo/h8: Add backlight control.
Change-Id: I773793bf53d91ae787bd0d0ae7bd882243196d56
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/4678
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r-- | src/ec/lenovo/h8/chip.h | 1 | ||||
-rw-r--r-- | src/ec/lenovo/h8/h8.c | 11 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ec/lenovo/h8/chip.h b/src/ec/lenovo/h8/chip.h index 3efff2f6b8..37998ee6f3 100644 --- a/src/ec/lenovo/h8/chip.h +++ b/src/ec/lenovo/h8/chip.h @@ -47,6 +47,7 @@ struct ec_lenovo_h8_config { u8 evente_enable; u8 eventf_enable; + u8 has_keyboard_backlight; u8 has_power_management_beeps; }; #endif diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c index da5b478646..8fffd5a754 100644 --- a/src/ec/lenovo/h8/h8.c +++ b/src/ec/lenovo/h8/h8.c @@ -160,12 +160,19 @@ static void h8_enable(device_t dev) { struct ec_lenovo_h8_config *conf = dev->chip_info; u8 val, tmp; - u8 beepmask0, beepmask1; + u8 beepmask0, beepmask1, config1; h8_log_ec_version(); ec_write(H8_CONFIG0, conf->config0); - ec_write(H8_CONFIG1, conf->config1); + config1 = conf->config1; + + if (conf->has_keyboard_backlight) { + if (get_option(&val, "backlight") != CB_SUCCESS) + val = 0; /* Both backlights. */ + config1 = (config1 & 0xf3) | ((val & 0x3) << 2); + } + ec_write(H8_CONFIG1, config1); ec_write(H8_CONFIG2, conf->config2); ec_write(H8_CONFIG3, conf->config3); |