ec/lenovo/h8: Add USB Always On
commitf1395d825be59663913f88ddaf01cbfa6c46afa7
authorNicola Corna <nicola@corna.info>
Sat, 5 Nov 2016 15:06:59 +0000 (5 16:06 +0100)
committerNico Huber <nico.h@gmx.de>
Fri, 18 Nov 2016 17:14:42 +0000 (18 18:14 +0100)
treea3c2c2e0fbce8563797d0a7695e4e578e7d5666c
parentcd2afc0df034670a83479aded514b22b99124cf5
ec/lenovo/h8: Add USB Always On

USB AO is the internal name for the dedicated charging port on
ThinkPads when in S3 or lower.

AOEN (bit 0) is internal name for enabling this feature while AOCF
(bits 2 and 3) is the configuration field. According to Peter Stuge,
AOCF can be configured in this way:

    00 => AC S3 S4 S4 USB on, battery S3 USB on, battery S4 S5 off
    11 => AC S3 S4 S4 USB on, battery S3 S4 S5 USB off
    10, 01 => equivalent to 00

This commit also adds a new configuration field in the CMOS of the
X220 and the X201 to activate this feature. It probably can be also
added to all the ThinkPads that support this functionality.

With this functionality USB devices are able to negotiate full power
from the dedicated port (usually the yellow one) even in S3.

Tested on a X201 and X220 with an Android smartphone: with this
feature enabled it shows "Charging" when connected during S3, without
it it shows "Charging slowly" (or it doesn't charge at all on the
X201).

For some reasons the "AC only" mode doesn't work, so it has been
disabled.

Change-Id: Ie1269a4357e2fbd608ad8b7b8262275914730f6e
Signed-off-by: Nicola Corna <nicola@corna.info>
Reviewed-on: https://review.coreboot.org/17252
Tested-by: build bot (Jenkins)
Reviewed-by: Nico Huber <nico.h@gmx.de>
src/ec/lenovo/h8/Makefile.inc
src/ec/lenovo/h8/h8.c
src/ec/lenovo/h8/h8.h
src/ec/lenovo/h8/smm.c [new file with mode: 0644]
src/mainboard/lenovo/x201/cmos.default
src/mainboard/lenovo/x201/cmos.layout
src/mainboard/lenovo/x201/smihandler.c
src/mainboard/lenovo/x220/cmos.default
src/mainboard/lenovo/x220/cmos.layout
src/mainboard/lenovo/x220/smihandler.c