ec/lenovo/h8: Implement LOGO LED

Implement the red i-dot LED in the ThinkPad logo at the display lid.
On warm reboot the LOGO LED isn't automatically turned on by the EC.
Turn it on in the ramstage code, which allows to see when the reboot
has happened. (Similar to PWR LED; see change ID 88998)

Further testing on other devices running H8 EC is required!

TEST=LOGO LED is on after warm reboot on Lenovo T440p.

Reference: https://ch1p.io/t440p-leds-control-linux/#list-of-leds
Related: https://review.coreboot.org/c/coreboot/+/88998
Change-Id: I2ebba5a4c1ffc38f0c2e1b24793e4a252cc171bd
Signed-off-by: Christian Schrötter <cs@fnx.li>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91837
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Christian Schrötter 2026-03-24 17:18:03 +01:00 committed by Matt DeVillier
commit cf541343a9
3 changed files with 4 additions and 1 deletions

View file

@ -268,6 +268,7 @@ static void h8_enable(struct device *dev)
* (Without this warm reboot leaves LEDs off)
*/
ec_write(H8_LED_CONTROL, H8_LED_CONTROL_ON | H8_LED_CONTROL_POWER_LED);
ec_write(H8_LED_CONTROL, H8_LED_CONTROL_ON | H8_LED_CONTROL_LOGO_LED);
beepmask0 = conf->beepmask0;
beepmask1 = conf->beepmask1;

View file

@ -70,7 +70,7 @@ void h8_mb_init(void);
#define H8_LED_CONTROL 0x0c
#define H8_LED_CONTROL_OFF 0x00
#define H8_LED_CONTROL_ON 0x80
#define H8_LED_CONTROL_PULSE 0xa0 /* Some models, power LED only*/
#define H8_LED_CONTROL_PULSE 0xa0 /* Some models, power LED and logo LED only*/
#define H8_LED_CONTROL_BLINK 0xc0
#define H8_LED_CONTROL_POWER_LED 0x00
@ -80,6 +80,7 @@ void h8_mb_init(void);
#define H8_LED_CONTROL_SUSPEND_LED 0x07
#define H8_LED_CONTROL_DOCK_LED1 0x08
#define H8_LED_CONTROL_DOCK_LED2 0x09
#define H8_LED_CONTROL_LOGO_LED 0x0a /* red i-dot LED in ThinkPad logo (display lid) */
#define H8_LED_CONTROL_ACDC_LED 0x0c
#define H8_LED_CONTROL_MUTE_LED 0x0e

View file

@ -15,6 +15,7 @@ static void h8_panic(void)
H8_LED_CONTROL_SUSPEND_LED,
H8_LED_CONTROL_DOCK_LED1,
H8_LED_CONTROL_DOCK_LED2,
H8_LED_CONTROL_LOGO_LED,
H8_LED_CONTROL_ACDC_LED,
H8_LED_CONTROL_MUTE_LED
};