Commit Graph

3612 Commits

Author SHA1 Message Date
Daisuke Nojiri
044cc72496 Enable PD communication in RO for external display
This patch makes EC enable PD communication if it's running in
manual recovery mode. This is required to show recovery screen
on a type-c monitor.

This patch also makes EC-EFS ignore power availability. It will
make EC verify & jump to RW even if power is sourced by a barrel
jack adapter. This should allow depthcharge to show screens
(e.g. broken, warning) on a type-c monitor.

BUG=b:72387533
BRANCH=none
TEST=On Fizz with type-c monitor, verify
- Recovery screen is displayed in manual recovery mode.
- Critical update screen is displayed in normal mode.
- Warning screen is displayed in developer mode.
Monitors tested: Dingdong, Dell S2718D

Change-Id: Ib53e02d1e5c0f5b2d96d9a02fd33022f92e52b04
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/898346
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-02-03 02:38:10 -08:00
Daisuke Nojiri
cd5173dfe0 Fizz: Suppress EC_CMD_PD_GET_LOG_ENTR debug log
Host command handler prints every single host command except when
commands are repeated back-to-back. Some commands do not provide
useful info when studying feedback reports or what is worse they
may hide critical info by flooding the EC log.

BUG=chromium:803955
BRANCH=none
TEST=Observe 'HC 0x115' is not printed.

Change-Id: I4901b27bbfedd54dc0d364b16c49d4ed0dea0fc4
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/896694
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-02-03 02:38:07 -08:00
Dino Li
30bf5c1b84 reef_it8320: don't pull-up tx/rx of uart
Because H1 monitor tx/rx signals to detect servo board,
so we can't pull-up tx/rx or the DETECT_SERVO of H1 will
be always high even the servo board isn't connected.

BUG=none
BRANCH=none
TEST=H1 detect servo board correctly.

Change-Id: I2f2dfa220ed77478e6e622a0ed1189f559044aa3
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Reviewed-on: https://chromium-review.googlesource.com/897315
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-02-02 23:53:41 -08:00
Nicolas Boichat
f0532aa93a charge_state_v2: Safer power transfer between lid and base
To avoid issues where adapter would drive against OTG of lid or
base, and to make sure that we do not over-current the adapter,
we disconnect the base/lid power transfer whenever a new
adapter is connected.

We reenable power transfer as needed.

We also separate out base current control as a new function,
that allows us to record the previous base current only when
the base charge control command is successful, and ignore
errors until the base is responsive for the first time.

Finally, we make sure that
charge_allocate_input_current_limit is only called from a
single location in charger_task.

BRANCH=none
BUG=b:71881017
TEST=Plug/unplug base, reset lux EC, connect charger.
     Base is detected, power allocation works as expected.

Change-Id: I8b206d5b0fbcf0fe868b56a0336745aebe2a6dc2
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/880021
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-02-02 23:53:40 -08:00
Mary Ruthven
4d3c8c1776 cr50: create ap_uart state machine
This change creates a state machine to handle ap uart detection. It
removes all of the ap_uart stuff from ap_state.c and moves it to
ap_uart_state.c. All boards will now use ap_uart to enable/disable ap
uart and tpm_rst_l to detect the ap state.

Separate ap uart detection from ap detection, so we can disable the ap
uart without enabling deep sleep. If the ap is in S3 on ARM devices,
Cr50 wont be in deep sleep, but the AP UART RX signal wont be pulled up.
In this case we need cr50 ap rx to be disabled and deep sleep to be
disabled.

BUG=b:35647982
BRANCH=cr50
TEST=run firmware_Cr50DeviceState on scalet and electro

Change-Id: I81336a9e232df8d44b325eef59327a1c06a80cba
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/884307
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
2018-02-02 23:53:33 -08:00
Duncan Laurie
9b406da2dc eve: Add support for dumping PMIC fault registers
If during PMIC initialization, it is identified that there was a VR
fault, then dump fault registers 0x16 and 0x17 to EC console. This
information is very useful during debugging sudden power losses in
field and so it is printed out to EC console.

Additionally, add panic reason with these register values as panic
data so that OS can provide this information in cros ec
panicinfo. This helps in retaining the information even if EC console
logs overflow.

BUG=b:65026806
BRANCH=eve
TEST=Verified that on a VCCIO shutdown, PMIC VR fault is
reported: "PMIC VRFAULT: PWRSTAT1=0x80 PWRSTAT2=0x00"

Change-Id: I583e513f865aeefc7dfc9860ce0ce9789808dea2
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://chromium-review.googlesource.com/896163
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
2018-02-02 13:19:25 -08:00
YB.Ha
c721ad9162 nautilus : clean up gpios
clean up unused gpios

BUG=none
BRANCH=none
TEST=build/flash nautilus

Change-Id: Ifdebc885d7f81b560b27bfed5abb93d8976e9641
Signed-off-by: YB.Ha <ybha@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/897305
Commit-Ready: YongBeum Ha <ybha@samsung.com>
Tested-by: YongBeum Ha <ybha@samsung.com>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-02-01 21:29:42 -08:00
Edward Hill
5bfeef6bb3 grunt: Set USB-C DP HPD GPIOs correctly.
Change the EC to drive the Hotplug Detect (HPD) GPIOs.

Grunt HW has these driven from EC to SOC, unlike coral which had
the TCPCs drive the HPD signals to SOC.

BUG=b:71810897
BRANCH=none
TEST=external display works using USB-C to DP adapter on both ports

Change-Id: I22ec9eecc5bdf9c6463dd3ce208d051faf15c57a
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/892099
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
2018-02-01 21:29:38 -08:00
Martin Roth
69b592426c Grunt: Set AP reset pin to open drain
By setting this GPIO to open drain, we don't need to make any board
changes as it won't conflict with the warm reset pin from the servo
header.

TEST=Warm reset works
BUG=B:72751599
BRANCH=None

Change-Id: I29d976851fc011fcb130a1747e4a39c8bf80a4ed
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://chromium-review.googlesource.com/898075
Commit-Ready: Aaron Durbin <adurbin@chromium.org>
Tested-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Edward Hill <ecgh@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
2018-02-01 18:08:42 -08:00
Simon Glass
c23e632984 grunt: Rename orange LED to amber
'Amber' seems to be more common in the code base. Rename it for grunt.

BUG=b:71902053
BRANCH=none
TEST=make BOARD=grunt -j10

Change-Id: I73a6bff4f113f5c49e70fde6d1f4667b8324a6d8
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/896401
Reviewed-by: Edward Hill <ecgh@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
2018-02-01 18:08:40 -08:00
Jett Rink
1b87ee65ac cleanup: Removing unnecessary CONFIG_USB_PD_DISCHARGE define
CONFIG_USB_PD_DISCHARGE is now defined automatically if you specify one of
the specified options such as CONFIG_USB_PD_DISCHARGE_TCPC

BRANCH=none
BUG=none
TEST=grunt still discharges using PPC

Change-Id: I94086cfc58bebce9c62ad6aa52b7740b25276d89
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/894676
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
2018-02-01 14:55:19 -08:00
Shawn Nematbakhsh
f80b0f31c5 poppy / soraka: Decrease input current limit to prevent OC
Based on measurements, Soraka can pull more current than desired.
Decrease the programmed current limit by an additional factor,
determined by taking the worst-case power measurements across several
different Soraka devices, to ensure that Soraka never pulls more
current than desired.

BRANCH=None
BUG=b:67944740
TEST=Verify with `charger` that input current limit becomes 472mA when a
5V / 500mA charger is plugged, and 2896mA when a 5V / 3000mA charger is
plugged.

Change-Id: I2b2cb6f445533476d173cd7f5fb825d8b11d1405
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/890102
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Benson Leung <bleung@google.com>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
2018-02-01 14:55:18 -08:00
Jett Rink
aa2a4695ae grunt: enabling PPC vbus discharge path
Grunt uses a PPC, so we want it to discharge VBUS instead of the TPCP

BRANCH=none
BUG=b:72179253
TEST=Verified grunt board fall time is within spec now

Change-Id: I556cd2945ee191e3f423ee0a93c35eb2ccff9016
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/886564
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Edward Hill <ecgh@chromium.org>
2018-01-31 22:39:01 -08:00
Edward Hill
11bda19561 sn5s330: Enable VBUS interrupts
If the sn5s330 PPC is being used to detect VBUS presence
(CONFIG_USB_PD_VBUS_DETECT_PPC), then enable interrupts and call
usb_charger_vbus_change when VBUS_GOOD changes.

BUG=b:72007153,b:72007492
BRANCH=none
TEST=Connect 3A and 1A USB-A chargers to each of Grunt's USB-C ports,
check that BC1.2 detection is working:
	With 1A:
	> chgsup
	port=0/1, type=7, cur=500mA, vtg=5000mV, lsm=1
	With 3A:
	> chgsup
	port=0/1, type=7, cur=2400mA, vtg=5000mV, lsm=1
TEST=Boot Grunt to OS, then connect USB2 mouse or USB3 flash drive to each
of Grunt's USB-C ports. Devices do not work due to b:71772180, but gpioget
shows EC is setting USB_C0/1_BC12_VBUS_ON_L correctly.

Change-Id: Iffc352105a321997adb364b9fbb8bafef248c224
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/887938
Reviewed-by: Jett Rink <jettrink@chromium.org>
2018-01-31 22:38:56 -08:00
Anatol Pomazau
5a910a86be Add support for HW alerts
- Add a vendor command that provides alert counter. Userspace can use
   it e.g. for user metric analysis.
 - Add 'alerts' debug console command. It provides information about
   chip alerts: supported alerts, fuse status, interrupt status, alert
   counter.
 - Add 'alerts fire [INT]' command to fire a software defined alert
   (globalsec/fwN where N is 0,1,2,3).

Signed-off-by: Anatol Pomazau <anatol@google.com>

BUG=b:63523947
TEST=ran the FW at Pyro and checked alerts data sent to host

Change-Id: I7cec0c451ed71076b44dad14a151b147ff1337e8
Reviewed-on: https://chromium-review.googlesource.com/817639
Commit-Ready: Anatol Pomazau <anatol@google.com>
Tested-by: Anatol Pomazau <anatol@google.com>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
2018-01-31 13:47:15 -08:00
Jongpil Jung
62d94fc2a9 nautilus: Implement workaround for broken reset flags for rev3.
Issue will fix next board revision. It was not fixed in rev3 yet.
So, we neet to add workaround for rev3 as well.

BUG=b:67062902
BRANCH=None
TEST=None

Change-Id: I033df22f342a2c8f0ddf4b1883d99018db1df16d
Signed-off-by: Jongpil Jung <jongpil19.jung@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/893578
Commit-Ready: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com>
Tested-by: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-31 05:58:00 -08:00
Nicolas Boichat
7ffcd686db whiskers: Enable LM3630A LED driver
Used to control keyboard backlight.

BRANCH=none
BUG=b:68934906
TEST=make BOARD=whiskers -j

Change-Id: Ie793ebe91670965a434896530084561a7f1c57d4
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/892842
Reviewed-by: Benjamin Gordon <bmgordon@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>
2018-01-31 03:36:25 -08:00
Aseda Aboagye
7368aff427 meowth: zoombini: Enable CONFIG_ALS.
This allows the acpi_light sysfs entry to be populated with the actual
ALS data.

BUG=b:70290036
BRANCH=None
TEST=Flash meowth; read both illuminance values for the ALS devices
under iio and verify that they are both operational.

Change-Id: Ia22633629195d5bdeedc70a908ceca1411110b7d
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://chromium-review.googlesource.com/888218
Commit-Ready: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-30 17:47:20 -08:00
Shawn Nematbakhsh
9afcd8d602 cleanup: Remove CONFIG_USB_PD_TCPC_BOARD_INIT
It's no longer necessary to call board_tcpc_init() from PD tasks, since
HOOK_INIT completion is guaranteed before the task starts. Also, calling
board_tcpc_init() for each PD task without a port arg is a bad idea.

BUG=b:72229154
BRANCH=none
TEST=`make buildall -j`

Change-Id: I6fba07771693b8343568041960a263e02775a8fc
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/881538
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Edward Hill <ecgh@chromium.org>
2018-01-30 14:54:23 -08:00
Philip Chen
1c90656d03 scarlet: Remove unused macros in battery.c
The macros were added for debug and not used anymore.
Let clean it up.

BUG=none
BRANCH=none
TEST=make BOARD=scarlet

Change-Id: I859fd3ddf2d5271ba26d23696013c83dec98a966
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/891547
Commit-Ready: Philip Chen <philipchen@chromium.org>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Alexandru M Stan <amstan@chromium.org>
2018-01-30 14:54:23 -08:00
Shawn Nematbakhsh
8d29b3dae7 stm32: Fix bkpdata accounting
stm32f0 has 20 bytes (not 20 words) of VBAT-backed RAM. Make more
efficient use of our limited storage to prevent trying to use storage
that doesn't exist.

BUG=b:71333840
BRANCH=None
TEST=Negotiate PD, run "reboot" on scarlet EC console, verify reset path
is taken in pd_partner_port_reset().

Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Ie4c303b74a1b82b84ec971cdcc19c2b21a0032e7
Reviewed-on: https://chromium-review.googlesource.com/885461
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-30 14:54:17 -08:00
Shawn Nematbakhsh
9362b06201 samus_pd: Remove 'adc' console command
Remove console command for flash / RAM savings.

BUG=None
TEST=`make buildall -j`
BRANCH=None

Change-Id: Ibfccbdf45e5c86260cc55237387994fdf094c19c
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/885463
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-30 14:54:17 -08:00
Vijay Hiremath
f543a8e798 glkrvp: Switch from NPCX5 EC to NPCX7 EC
BUG=b:68987606, b:72483287
BRANCH=glkrvp
TEST=GLKRVP can boot to OS

Change-Id: If4b99ca60005b97c59a1d8dc16c4065af63d34d8
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/750365
Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2018-01-30 09:02:13 -08:00
YB.Ha
313220c87d nautilus : fix white led shown issue on ec reset
set gpios of LED to output high(off) when ec reset

BUG=b:72485879
BRANCH=none
TEST=build/flash nautilus

Change-Id: I187dc82839fe7000e004cf58c4811656c905c00a
Signed-off-by: YB.Ha <ybha@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/892679
Commit-Ready: YongBeum Ha <ybha@samsung.com>
Tested-by: YongBeum Ha <ybha@samsung.com>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-30 06:32:43 -08:00
Mary Ruthven
4d0eb3be49 cr50: fix ec and servo detection
This change reenables the gpio interrupts if the signal is not high.

BUG=none
BRANCH=cr50
TEST=firmware_Cr50DeviceState

Change-Id: Iae4e18594954789cd6841e01d1c943de3b389415
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/884306
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-29 16:38:33 -08:00
Furquan Shaikh
8160d1ae86 poppy: Enable dptf device orientation
This is required to support mode-aware DPTF. Also, there is no need to
send mode change event in board specific code as that is already done
by dptf common code.

BUG=b:65467566
BRANCH=None
TEST=Verified that trip point temperatures get updated in the OS
depending upon the device mode.

Change-Id: I854628bcde755bdb1c6c1b73fbfa0948e1d7e420
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/887725
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
2018-01-29 16:38:32 -08:00
Mary Ruthven
a4e1e47630 cr50: add properties to BOARD_ALL_PROPERTIES
Add BOARD_DEEP_SLEEP_DISABLED and BOARD_DETECT_AP_WITH_UART to
BOARD_ALL_PROPERTIES, so they will be updated after cr50 reboots.

BUG=b:35647982
BRANCH=cr50
TEST=test deep sleep on scarlet

Change-Id: I8999ae7c6c1dad6799b5fdb99ebf5d7618a21c2b
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/882343
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-29 16:38:26 -08:00
Nicolas Boichat
31c1fc6d43 whiskers: Update GPIO for next revision
Looks more similar to original hammer.

BRANCH=none
BUG=b:68934906
TEST=make BOARD=whiskers -j

Change-Id: I0f10240f8c3237b20f60a1217e167ad9539e3953
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/853574
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-29 05:24:45 -08:00
YB.Ha
14e6afb4f2 nautilus : fix abnormal led operation
The charge state is set to IDLE when battery temperature
is under 0 or over 50 degrees and led is set to green although
external power does not present.
This CL fix this issue.

b:72423182
BRANCH=none
TEST=build/test in nautilus

Change-Id: I238096d46a426dd3ad579540c06eb306f2d1b490
Reviewed-on: https://chromium-review.googlesource.com/888358
Commit-Ready: YongBeum.Ha <ybha@samsung.corp-partner.google.com>
Tested-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
2018-01-29 03:06:35 -08:00
Elmo_Lan
e46d0fcbc8 Nami: Update for ALS and temperture sensor
Implement ALS code and add a new thermal sensor
(Fintek, F75303)

BUG=b:71839392
BRANCH=none
TEST=Verify Nami can read ALS and thermal data via I2C by ec console.

Change-Id: I0f8fd486f62508bbca30a57f435b9f26621cf34b
Signed-off-by: Elmo_Lan <elmo_lan@compal.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/863350
Commit-Ready: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
Tested-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
2018-01-28 21:17:06 -08:00
Martin Roth
9b7b5460d2 grunt: Disable CONFIG_BRINGUP option
Bringup went well so this this option is no longer needed.

BUG=None
TEST=Build & boot
BRANCH=None

Change-Id: I415161ab77d2a6b1ce59d6773d3cf78176cd1e96
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://chromium-review.googlesource.com/882182
Commit-Ready: Martin Roth <martinroth@chromium.org>
Tested-by: Martin Roth <martinroth@chromium.org>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
2018-01-26 13:25:47 -08:00
Nicolas Boichat
e5c6f97d1a charge_state_v2: Basic dual-battery charging algorithm
First version of the algorithm, some TODOs are left in the code
but this, generally, works reasonably well.

When charging, we allocate input current in this general order:
 - Base system (fixed, low, number)
 - Lid system (based on PSYS)
 - Lid battery (estimating how much current the battery actually
   requires)
 - Base battery (similar estimation)
 - Provide everything else to lid

When discharging, we generally:
 - First discharge the base battery
 - Then discharge the lid battery

BRANCH=none
BUG=b:71881017
TEST=Flash lux and wand, EC-EC communication works, adapter power
     is split in a sensible way, and discharging works fine.

Change-Id: I8a4f87963962fc5466b2fedf1347eb4dadd35740
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/659460
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-26 13:25:38 -08:00
Nicolas Boichat
ecfa696638 lux: Base detection code
Lux base detection is a little trickier than previous bases,
as the detection levels switch around when GPIO_EC_COMM_PD gets
enabled:
 - When disconnected, low levels (~550mV) mean base got connected,
   and high levels (~3300mV) mean base is still disconnected.
 - When connected, low levels (~43mV) mean base got disconnected,
   and high levels (~2346mV) mean base is still connected.

On reset, when base_status is unknown, we enable GPIO_EC_COMM_PD,
to be able to differentiate between connected and disconnected.

BRANCH=none
BUG=b:67029560
TEST=Connect lux/wand, check that base gets detected correctly.
TEST=Type reboot in EC console, base gets detected as well.

Change-Id: I742def8e378a93c08e2dcc155b06cbca814e7fd8
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/845543
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-26 13:25:38 -08:00
paris_yeh
9c06f2f1c2 coral: Fix default LED table for battery error state
The default behavior for this state is the amber color for 1 second
and then off for 1 seconds. The existing table entry for this state
was incorrect.

BUG=b:70914820
BRANCH=none
TEST=make buildall -j
Signed-off-by: paris_yeh <pyeh@google.com>

Change-Id: I6291121a37905d5f7cdcfe57b3f91d98af370605
Reviewed-on: https://chromium-review.googlesource.com/848757
Commit-Queue: David Huang <David.Huang@quantatw.com>
Tested-by: David Huang <David.Huang@quantatw.com>
Reviewed-by: Scott Collyer <scollyer@chromium.org>
(cherry picked from commit 9377284119d1279c3843f16e9ea8d91d5dc8528f)
Reviewed-on: https://chromium-review.googlesource.com/842345
Commit-Ready: Paris Yeh <pyeh@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Paris Yeh <pyeh@chromium.org>
2018-01-25 22:38:21 -08:00
Benjamin Gordon
f71edad1e7 grunt: Enable LM3630A driver for keyboard backlight
BUG=b:69379749
BRANCH=None
TEST=kblight 100; kblight 50; kblight 0

Change-Id: I003ae1071de0430fe38a48b2e9bccb08207bc019
Signed-off-by: Benjamin Gordon <bmgordon@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/879083
Reviewed-by: Edward Hill <ecgh@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
2018-01-25 19:23:38 -08:00
Benjamin Gordon
73162e60af zoombini: Enable LM3630A driver for keyboard backlight
BUG=b:69379749
BRANCH=None
TEST=kblight 100; kblight 50; kblight 0

Change-Id: I096ed43859e11a7984d9672bfab406f0cb91015f
Signed-off-by: Benjamin Gordon <bmgordon@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/881945
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
2018-01-25 19:23:37 -08:00
Philip Chen
b46496c2d5 nautilus: Fix battery_check_disconnect()
The way Nautilus battery checks the conditions of CHG/DSG FETs
are slightly different from the other smart batteries we use.
So the current implementation of battery_check_disconnect() doesn't work.

BUG=b:69016914
BRANCH=none
TEST=recovery from software-based battery cutoff 10/10

Change-Id: I88de64d8da55f0b57fbdde21d4529435841bdf76
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/882941
Commit-Ready: Philip Chen <philipchen@chromium.org>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
2018-01-25 02:43:22 -08:00
Elmo_Lan
e68469b524 Nami: trigger type of LCD backlight
Modify for low active design.

BUG=b:71839295
BRANCH=none
TEST=Verify Nami LCD backlight turn on.

Change-Id: I26f1e744921da5fa62f5f561fd6d16a76f2c5f4e
Signed-off-by: Elmo_Lan <elmo_lan@compal.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/861583
Commit-Ready: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
Tested-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-24 20:24:39 -08:00
Daniel Kurtz
8944d0824a grunt: Add CONFIG_VSTORE
Add a slot of secure temporary storage to support suspend/resume.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>

BUG=b:72188897
TEST=On grunt w/ S3-enabled coreboot:
  powerd_dbus_suspend --wakeup_timeout=10
 => Device resumes throught coreboot to kernel
BRANCH=none

Change-Id: I37410a3e66fc6eee32e559069a33e904880cddc9
Reviewed-on: https://chromium-review.googlesource.com/875418
Commit-Ready: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Edward Hill <ecgh@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
2018-01-24 20:24:38 -08:00
CHLin
65cc83f780 npcx7_evb: Define BOARD_VERSION for different npcx7 EVBs
There are two versions of npcx7 EVB. This CL adds the definition
BOARD_VERSION (default is 2) in board.h. So we can include different
features or set CONFIG_* flags based on the value of BOARD_VERSION to
meet the default HW configuration of npcx7 EVBs.

BRANCH=none
BUG=none
TEST=No build errors for make buildall.
TEST=Change BOARD_VERSION to 1/2; "BOARD=npcx7_evb make";
Flash the image on EVB 1/2; make sure the EVBs bootup.

Change-Id: Id4556f702af8c26778a649addde7cf490b5301fc
Signed-off-by: CHLin <CHLIN56@nuvoton.com>
Reviewed-on: https://chromium-review.googlesource.com/873510
Commit-Ready: CH Lin <chlin56@nuvoton.com>
Tested-by: CH Lin <chlin56@nuvoton.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-24 04:36:36 -08:00
Jongpil Jung
b58ceaca34 nautilus: set default level for USB_POWERON
To eanble USB power, USB_POWERON_L should be low.
Default is high. So, turn off USB.
Power On(Low) : chipset startup
Power Off(High) : chipset shutdown

BUG=b:72202322
BRANCH=master
TEST=emerge-nautilus chromeos-ec
     flash ec and check if PIN stay low after power on.

Change-Id: I9ab617b72f10645fb2dce7005ddeeb023c67605d
Signed-off-by: Jongpil Jung <jongpil19.jung@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/872810
Commit-Ready: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com>
Tested-by: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-23 20:18:29 -08:00
Philip Chen
163ba57cc2 scarlet: Assert SYS_RST_L in S5
To support CR50 deep sleep mode:
In up-sequence, SYS_RST_L needs to remain asserted on the transition
to S5 and then deasserted on the transition to S0;
In down-sequence, SYS_RST_L needs to be asserted on the transition to S5.

This only affects Scarlet.

BUG=b:35647982
BRANCH=none
TEST=minitor SYS_RST_L pin to confirm it is toggled right

Change-Id: Ic73d39c531f9d28b2087a23d58613e98ec80dbd2
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/866115
Commit-Ready: Philip Chen <philipchen@chromium.org>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: David Schneider <dnschneid@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-23 20:18:28 -08:00
Edward Hill
bd9d0d054b grunt: Move TCPC init to init hook
All init hooks complete before tasks are started (since
crrev.com/c/456628), so board_tcpc_init will finish before
the PD tasks start.

Using the init hook instead of CONFIG_USB_PD_TCPC_BOARD_INIT
avoids the problem of board_tcpc_init being called by every
PD task.

BUG=b:72229154
BRANCH=none
TEST=PD still works on grunt,
     board_tcpc_init is only called once,
     PD task init happens after board_tcpc_init finishes

Change-Id: Ie1263dffce06e9ea2433cc2d08d1537e4a891d40
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/879358
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-23 17:41:45 -08:00
Vincent Palatin
adeb276aa6 eve_fp: remove board
fp is dead, long life to fp.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>

BRANCH=none
BUG=b:72360575
TEST=make buildall

Change-Id: Idccb953044018e24d14b6ef1dbf69766fb9b58ab
Reviewed-on: https://chromium-review.googlesource.com/880954
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-23 17:41:42 -08:00
Benjamin Gordon
04a9dfe645 zoombini: Add support for I2C bus 4
This is used by the keyboard backlight driver.  Add support so we can
start talking to this chip.

BUG=b:69379749
BRANCH=none
TEST=i2cscan shows a device at 0x6c on bus 4 now

Change-Id: I951ecd0fa3030f9f408ed0a4504b54950b7ca174
Signed-off-by: Benjamin Gordon <bmgordon@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/879081
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
2018-01-23 11:24:21 -08:00
Philip Chen
5bdc0e2298 nautilus: Remove WLAN_PE_RST
We don't use GPIO12 anymore.

BUG=b:72334658
BRANCH=none
TEST=build Nautilus

Change-Id: I0f407caf708040a7ee132fd0993d20b5a0b7bb7a
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/879783
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-23 11:24:19 -08:00
Daisuke Nojiri
a70227296b Fizz: Remove board_has_working_reset_flags
This function is no longer used because proto0 boards have been
deprecated. This function is called before I2C is initialized.
This function tries to read board info and causes watchdog to
trigger because timeout is set to zero.

BUG=none
BRANCH=none
TEST=boot Fizz. reboot by 'reboot ap-off'. Observe no watchdog reset.

Change-Id: I3bdebe4fb34dbef552fc89a170efa87d753078c0
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/879355
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-22 22:07:25 -08:00
Philip Chen
632043a544 scarlet: Fix ADC unit conversion
To detect the board version correctly, ADC must output mV.

BUG=b:72233188
BRANCH=none
TEST='version' command shows correct board version.

Change-Id: I68889092719240394f03cb9b21cb0844feb315e5
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/879491
Commit-Ready: Philip Chen <philipchen@chromium.org>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
2018-01-22 22:07:19 -08:00
Daisuke Nojiri
c06d7fea8f host_command: Suppress individual host command debug log
Host command handler prints every single host command except when
commands are repeated back-to-back. This patch allows each board
decide which commands should be ignored. When debug printf is
suppressed, a global counter is incremented. Developers know there
were commands processed but not reported to the console.

BUG=chromium:803955
BRANCH=none
TEST=Observe 0x97 and 0x98 were not printed. Global suppress
counter is incremented.

Change-Id: I05e8cde9039f602e8fc06c20e89b328e797bd733
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/876952
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2018-01-22 18:50:11 -08:00
Nicolas Boichat
d9f4ce13f2 touchpad_elan: Add retry logic if the touchpad does not respond
After 3 tries, the touchpad is reset by power-cycling it.

BRANCH=none
BUG=b:71688150
TEST=Short SDA/SCL lines, press on touchpad, see that touchpad tasks
     retries transaction, and then resets the touchpad power.
TEST=Do ESD discharge, and see that touchpad always recovers.

Change-Id: If0b5eb936d4d2feb3d34a7ec8748869a1b915c34
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/872131
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2018-01-21 22:20:48 -08:00