ec/lenovo/h8/smm: Support USB always on AC only

Add support for UAO AC only mode.
Needs tests on all platforms.

Change-Id: Ib52aab427ff687b00129024cde65b78060d21e32
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/20450
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
Patrick Rudolph 2017-07-01 17:37:06 +02:00 committed by Martin Roth
parent f8574bf4a7
commit b21f5d708a
3 changed files with 17 additions and 3 deletions

View File

@ -18,18 +18,30 @@
#include "h8.h"
enum usb_always_on {
UAO_OFF = 0,
UAO_AC_AND_BATTERY,
UAO_AC_ONLY
};
void h8_usb_always_on(void)
{
u8 val;
enum usb_always_on val;
u8 reg;
if (get_option(&val, "usb_always_on") != CB_SUCCESS)
val = 0;
val = UAO_OFF;
if (val) {
if (val == UAO_AC_AND_BATTERY) {
reg = ec_read(H8_USB_ALWAYS_ON);
reg &= ~H8_USB_ALWAYS_ON_AC_ONLY;
reg |= H8_USB_ALWAYS_ON_ENABLE;
ec_write(H8_USB_ALWAYS_ON, reg);
} else if (val == UAO_AC_ONLY) {
reg = ec_read(H8_USB_ALWAYS_ON);
reg |= H8_USB_ALWAYS_ON_AC_ONLY;
reg |= H8_USB_ALWAYS_ON_ENABLE;
ec_write(H8_USB_ALWAYS_ON, reg);
ec_set_bit(0x2, 3);
}
}

View File

@ -125,6 +125,7 @@ enumerations
10 6 160M
11 0 Disable
11 1 AC and battery
11 2 AC only
# -----------------------------------------------------------------
checksums

View File

@ -136,6 +136,7 @@ enumerations
11 6 224M
12 0 Disable
12 1 AC and battery
12 2 AC only
# -----------------------------------------------------------------
checksums