summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Clear OWNERS for factory/firmware branchfirmware-volteer-13672.156.B-mainBrian Norris2021-09-117-24/+0
| | | | | | | | | | | | BUG=none TEST=none Change-Id: I0f03f432ada1064ffba9595be78ca7ab4d25ecd1 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3155278 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Owners-Override: Jora Jacobi <jora@google.com> Tested-by: Jack Rosenthal <jrosenth@chromium.org>
* volet: Initial EC imageSheng-Liang Pan2021-05-069-0/+1551
| | | | | | | | | | | | | | | | | | | | | | Create the initial EC image for the volet variant by copying the voxel reference board EC files into a new directory named for the variant. (Auto-Generated by create_initial_ec_image.sh version 1.5.0). BUG=b:186334008 BRANCH=None TEST=make BOARD=volet Change-Id: I97cee656f4f12785110297afb323d2feac2b48d1 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2866925 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2874432 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* voema: add voema_npcx796fc build targetBen Chen2021-05-053-0/+16
| | | | | | | | | | | | | | | | | | | supports npcx796fc build target to switch npce796fc/797fc chip select. BUG=b:187096310 BRANCH=none TEST=make buildall, workable on the re-worked Board. Change-Id: I0c6eff0a4ba11ff7dc07333f8230d3df34f21d64 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2870885 Reviewed-by: YH Lin <yueherngl@chromium.org> (cherry picked from commit 5c5ab750e63d350eb7d7f09120a9c9373ea898e5) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2875465 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: YH Lin <yueherngl@chromium.org> Tested-by: YH Lin <yueherngl@chromium.org>
* copano: Fine tune Keyboard backlight PWM frequencyJacky Wang2021-05-051-1/+1
| | | | | | | | | | | | | | | | | | Fine tune Keyboard backlight PWM frequency from 2.4kHz to 10kHz BUG=b:187096314 BRANCH=firmware-volteer-13672.B TEST=make BOARD=drobit 1. Verified pass by EE team. Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: Ia3a05b5d8138f3961b7d9c0133da735ae7da1a94 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2870888 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org> (cherry picked from commit 0c9bceb8d6adc92b1386488c6781ed415fd7e248) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2873626
* usb-ep: Add config option to define VIDScott Collyer2021-05-044-1/+35
| | | | | | | | | | | | | | | | | | | | | This value was previously hardcoded to Google's VID. However, some products with USB-EP support may require a different VID to correctly support fwupd. BUG=b:181920029 BRANCH=quiche TEST=verified that fwupd works on baklava Signed-off-by: Scott Collyer <scollyer@google.com> Change-Id: I23c36507a90428ab46cd5efde7d79581207bde74 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2848424 Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Scott Collyer <scollyer@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2871051 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Use board specific MF preference for DP AttentionScott Collyer2021-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both DP Status and DP Attention messages contain a MF bit which allows the UFP-D to signal to the DPF-D its multi-function preference. Chromeos host machines only act on this bit in the DP Status message. However, other host machines may also use this bit in the DP Attention message. This CL adds a call to a board specific policy function so that the MF bit can be set correctly in both the DP Status and DP Attention message. BUG=b:186632734 BRANCH=quiche TEST=ODM partner verifed that with this bit set in both DP Status and DP Attention, the host machine will select pin configuraiton D. Previously, the host machine was selecting pin configuration C. Signed-off-by: Scott Collyer <scollyer@google.com> Change-Id: I0242d2a5ad056ec210d7364b606528e4a54858c1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2856290 Commit-Queue: Scott Collyer <scollyer@chromium.org> Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2871050 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* ps8xxx: Handle null pointersCaveh Jalali2021-05-041-1/+9
| | | | | | | | | | | | | | | | | | | This adds a null pointer check to prevent undefined behavior. Also, add check for board_get_ps8xxx_product_id() returning an error. BRANCH=none BUG=b:186189039 TEST=buildall passes Change-Id: I40f5836528e9beaabac27d39ef6dd25013b9302c Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2857795 Reviewed-by: Wai-Hong Tam <waihong@google.com> Commit-Queue: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2871049 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Set CC on contract invalidation only if connectedDiana Z2021-05-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | When a contract is invalidated, it's important we advertise our current limit Rp rather than a residual collision avoidance Rp. However, we should not attempt to set CC's when we're in a disconnected state. This may cause us to set an unexpected CC selection, such as Ra if the TC layer hasn't set the first termination yet. BRANCH=None BUG=b:183182447 TEST=on guybrush, boot with i2c tracing enabled and ensure Ra is never set during init. Perform PR swaps and hard resets as source to ensure correct Rp is set. Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I8fbe06685e4b4a6493dfbf55270ce3bda8cfbdfd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2845013 Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2871048 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* retimer: check power for firmware upgradeli feng2021-05-031-12/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before retimer firmware update, check power, if battery is not present, or battery level is low (<5%), not allow PD suspend/performing retimer firmware update process. BUG=b:185320314 BRANCH=none TEST=On Voxel DVT, AC only, no battery, boot up system and confirm NDA PD port is not suspended, and retimer firmware update is not performed. DA port has correct device functions. TEST=On Voxel DVT, battery is low (< 5%), boot up system and confirmed NDA PD ports is not suspended, and retimer firmware update is not performed; DA port has correct device functions. TEST=On Voxel DVT, when battery level >=5%, confirmed NDA PD port can be suspended and retimer is scanned. DA port has correct device functions; device tested are DP dongle, TBT dock and USB4 device. Signed-off-by: li feng <li1.feng@intel.com> Change-Id: I1c5b2bc54b2f6307503f82112f28bbc8d6b0591a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2858283 Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit 7499e5b0472f142cb3cec7af8d35903ed96f74a5) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2865025 Tested-by: Keith Short <keithshort@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* tcpc: Add common routine to check powerli feng2021-05-013-42/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | This comment is from CL:1123314: We do not want to allow depthcharge to suspend the PD port for a firmware upgrade if there is not enough battery power to last during the full firmware upgrade. A common routine is created to check power: pd_firmware_upgrade_check_power_readiness() in usb_common.c. Firmware upgrade which needs to suspend PD port should check this function to make sure there is enough power. BUG=none BRANCH=none TEST=make -j buildall Signed-off-by: li feng <li1.feng@intel.com> Change-Id: I47910a4d82da9b569c297ad2cd399a2faf4cf98a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2862556 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit 01ef01d06be623269cf286c580d39e1f0e3a78d4) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2864741 Tested-by: Keith Short <keithshort@chromium.org>
* virtual mux: Wait for mux config ACK from AP on disconnectAyushee Shah2021-05-011-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | While switching from DP to Thunderbolt mode, EC sends a mux disconnect followed by a USB mux connect. Since these events are one behind the other, AP might miss the disconnect mux event. Hence, this CL waits for an ACK from AP, to synchronize the disconnect mux event between AP and EC. BUG=b:186609339 BRANCH=None TEST=1.Both the monitors behind the Tortilla based dock enumerate after coldboot. 2.Checked Disconnect-Connect with TBT/USB4 device in S0ix, they enumerate fine on full resume. 3.Checked coldboot with non-Tortilla based dock based dock. it enumerates fine. Signed-off-by: Ayushee Shah <ayushee.shah@intel.com> Change-Id: Ib32c3426c2b52b1af582729453d748902447900c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2857374 Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit 3b156ad3993b99eb9ec056a1d4e60d04525faa77) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2863947 Commit-Queue: Keith Short <keithshort@chromium.org> Tested-by: Keith Short <keithshort@chromium.org>
* TCPMv2: Enter TBT/USB4 only if port supportsVijay Hiremath2021-04-291-1/+3
| | | | | | | | | | | | | | | | | | Type-C ports may not be symmetrical on Reference Design Platforms hence check if the port supports TBT & USB4 mode before entering the mode. BUG=none BRANCH=none TEST=Tested on ADLRVP, TBT is not entered on non supported port Change-Id: Ifd3eae72f6226686462b07f9008b66bd60c7895b Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2846634 Reviewed-by: Ayushee Shah <ayushee.shah@intel.com> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2860082 Tested-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* isl9241: fix the system can't boot due to DCM modeZhuohao Lee2021-04-281-1/+5
| | | | | | | | | | | | | | | | | | | | | When the device recover from the battery cutoff, the battery is not ready to output the power to the system. If we toggle the DCM mode at that time, the system power will be cutoff. To avoid this problem, we check the battery battery_get_disconnect_state() before setting the DCM. BUG=b:186188004 BRANCH=firmware-volteer-13672.B TEST=1. charge the battery to near full 2. battery cutoff 3. plug in AC Change-Id: Ic2d959c89a9e37479b919133e10a69be8148a26e Signed-off-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2856065 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* usb_pe_drp: Consider CHARGE_PORT_NONE for HardRstAseda Aboagye2021-04-271-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we arrive in the EC image without a battery and with a PD supplier, we would eventually consider sending a HardReset since we are expecting SourceCaps to be sent by the port partner. However, since we no longer maintain our contract across images and we would like for the board to not brown out, we avoid sending the HardReset and simply disable the port instead. However, this situation can occur before we decide on a charge port. Therefore, this commit simply adds another condition when deciding to skip sending the HardReset. If a battery is not present, but there's no active charge port, we must be running on AC somehow so don't send the HardReset as this port may in fact be the previous charge port. BUG=b:176214112,b:178728138 BRANCH=dedede TEST=Build and flash galith; plug in charger on C1, remove battery, sysjump between RO and RW many times, verify that SoC remains in S0. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: I16054d9c1ddac780243524e23a656ba3770bb4a8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2848290 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2854422 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: PE: Refer to vconn swap policy for sop'/sop''Scott Collyer2021-04-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | There is a vconn swap check in pe_attempt_discovery that is used to trigger a possible vconn role swap requeest. This check takes into account a board's specific policy (if necessary). But, a vconn role swap can also be triggered when sending a VDM message to SOP'/SOP''. In this case, board specific policy still needs to be checked. BUG=b:183026242 BRANCH=quiche TEST=tested on quiche and verified that there is no longer a continous stream of vconn swap attempts. Signed-off-by: Scott Collyer <scollyer@google.com> Change-Id: I5d239c78dc0d324e0c3dbb99dfc7fa093e2f6570 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2827510 Commit-Queue: Scott Collyer <scollyer@chromium.org> Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2854421 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPC: Cleanup: Get Sink & SRC state from PD or PPCVijay Hiremath2021-04-277-54/+25
| | | | | | | | | | | | | | | | | | Added option to get the Sinking or Sourcing state from either PD or PPC. BUG=none BRANCH=none TEST=make buildall -j Change-Id: Ibb21ef69b5825ea5722ceacd5d7ef6f535aad17c Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2838127 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2854420 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPC: Cleanup: Enable PPC from PD or Power MUXVijay Hiremath2021-04-2712-11/+33
| | | | | | | | | | | | | | | | | | | Some PD chips have integrated SRC FET and control the SRC/SINK FET from GPIOs hence cleaned up the code to enable Power Path Control from either from PD or from Power MUX. BUG=none BRANCH=none TEST=make buildall -j Change-Id: I77f96b681fd2e5fca35bce425e4bd5ec87d5ccfd Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2828980 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2854419 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* extra/util: replace deprecated sys_siglist with strsignalAdrian Ratiu2021-04-273-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with Glibc 2.32: * The deprecated arrays sys_siglist, _sys_siglist, and sys_sigabbrev are no longer available to newly linked binaries, and their declarations have been removed from <string.h>. They are exported solely as compatibility symbols to support old binaries. All programs should use strsignal instead. https://sourceware.org/pipermail/libc-announce/2020/000029.html BUG=chromium:1171287 BRANCH=none TEST=Local builds on x86_64 / eve and arm / kevin. Sent SIGINT to iteflash and verified output. Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com> Change-Id: I8b4deaf8743c806a9610863648b345be3b35e1b5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2698188 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Commit-Queue: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2854418 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* elemi: Tune Vconn_Swap delayDevin Lu2021-04-271-0/+3
| | | | | | | | | | | | | | | | The Vconn source should ready before PS_RDY. BUG=b:186079130 BRANCH=firmware-volteer-13672.B-main TEST=PDtrace to make sure the timing of Vconn_Swap. Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Change-Id: I3c60ea73219497c661b6fec5add77c73a7f116b8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2847714 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> (cherry picked from commit a019f80fe9042331d897a23bd5476ecfde92478f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2852361 Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* voema: support kx022/bma255 with ssfc bits mapBen Chen2021-04-264-10/+81
| | | | | | | | | | | | | | | | | | | | | | config kx022 or bma255 motion sensor by ssfc bits map, and rename volteer ssfc bits map. BUG=b:178447173 BRANCH=main TEST=Using ectool 'motionsense' verified lid angle now goes from 0 to 360 and swtiches to tablet mode after crossing 200 threshold on re-work kx022/bma255 DUT. Change-Id: I2901b0cc980e50324eb4f20d073c5f3a4c3f80e3 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825719 Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit 05884b519cd040f2dce139dc533b1e82008f92a9) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2850306 Tested-by: David Wu <david_wu@quanta.corp-partner.google.com> Auto-Submit: David Wu <david_wu@quanta.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* copano: Remove config for firmware qualJacky Wang2021-04-261-4/+0
| | | | | | | | | | | | | | | | | | | | 1.Remove CONFIG_SYSTEM_UNLOCKED 2.Remove CONFIG_BYPASS_CBI_EEPROM_WP_CHECK BUG=b:183687873 BRANCH=firmware-volteer-13672.B TEST=make BOARD=coapno Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: Ia85de9121e3217730ebe2f21de814fe2dabd4b5f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2847711 Reviewed-by: Michael5 Chen <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit db3d48e0025c9b33eca7f3ad5b075d837a202819) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2848727 Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* drobit: Fine tune Keyboard backlight PWM frequencyJacky Wang2021-04-231-1/+1
| | | | | | | | | | | | | | | | | | | Fine tune Keyboard backlight PWM frequency from 2.4kHz to 10kHz BUG=b:185972046 BRANCH=firmware-volteer-13672.B TEST=make BOARD=drobit 1. Verified pass by EE team. Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: I663bd6401ae055d12cfd774a84fcbf5dabc76188 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2845024 Reviewed-by: Michael5 Chen <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org> (cherry picked from commit 9c18f8d64630e32cc785956b4a05a28794aae223) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2847493
* drobit: Remove config for firmware qualJacky Wang2021-04-231-4/+0
| | | | | | | | | | | | | | | | | | | 1.Remove CONFIG_SYSTEM_UNLOCKED 2.Remove CONFIG_BYPASS_CBI_EEPROM_WP_CHECK BUG=b:182751870 BRANCH=firmware-volteer-13672.B TEST=make BOARD=drobit Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: Ib86c81af7a4e1af6788abed56fdc4749dd9faf78 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2845196 Reviewed-by: Michael5 Chen <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit 49de92b15e547a21d1e8462b17bea40ed6962ac6) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2847494 Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* Lindar: Update lightbar 10-led cfgreno.wang2021-04-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Based on b:183826778's comment#17 and comment18 information to update lightbar 10-led cfg setting. The final placement adopt lightbar circuit's LED9 and LED10 which connect to KTD2061's LEDC1 and and LEDC2, not adopt LED11 and LED12 which connect to LEDC3 and LEDC4. BUG=b:183826778 BRANCH=volteer TEST=make -j BOARD=lindar Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: I7f7e1cac1f7361c5c21497a0cc4c1ff2763873bf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2833031 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit d05df43def60bd1e1be060208c2df948a6ccdaee) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2847704 Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* drobit: Update EC thermal tableJacky Wang2021-04-211-4/+4
| | | | | | | | | | | | | | | | | | | Update EC thermal table for throttle and temp_fan_max setting. BUG=b:177777472 BRANCH=firmware-volteer-13672.B TEST=make BOARD=drobit 1. Verified pass by thermal team. Signed-off-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Change-Id: Ibfa9c543a1d99e02815882091d495aa601d3640b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2839963 Reviewed-by: Michael5 Chen <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit 06b68e96901695c289b9ac75b4e318e39dec07f9) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2843283 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* copano: Enable AP-driven alt mode entryMichael5 Chen12021-04-201-0/+2
| | | | | | | | | | | | | | | | | | Wait for the AP to direct the EC to enter USB PD alternate modes. BUG=b:183773805 TEST=make buildall BRANCH=firmware-volteer-13672.B Signed-off-by: Michael5 Chen1 <michael5_chen1@pegatron.corp-partner.google.com> Change-Id: Ifc436f4043430f70ddba8563210b0a09cd5daf18 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2835256 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org> (cherry picked from commit 0d669d95d4b9062290cfd30acdb32c69f5f396cd) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2838745 Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Generate Hard Reset eventAbe Levkoy2021-04-153-0/+8
| | | | | | | | | | | | | | | | Inform the AP when the PRL completes a Hard Reset. BUG=b:183946291 TEST=Observe event during transition-to-default states TEST=With kernel patch, observe mode reentry after Hard Reset BRANCH=firmware-volteer-13672.B-main Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I4af576bd3a8fb57d820bd91d74817040214eaa5b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2799924 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829114
* TCPMv2: Soft reset on Vconn_Swap sequence interruptionDiana Z2021-04-151-0/+12
| | | | | | | | | | | | | | | | | | | When a non-interruptible AMS is interrupted, the unexpected message should yield a soft reset on the SOP* of the incoming message. Before sending PS_RDY, check for this condition and soft reset if necessary. BRANCH=None BUG=b:182221344 TEST=on sasuke, confirm charger can successfully connect reliably Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I6612cb5d5d74cf99155cac99894a7746462a7b9e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2823633 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829113 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Remove dual-role capability check from Attached.SNK entryDiana Z2021-04-152-19/+13
| | | | | | | | | | | | | | | | | | | | | | Currently, we'll check the partner dual role flag when entering Attached.SNK not from a power role swap. However, we have no way to know the partner dual role capabilities at that point. Set up connections as dedicated, and then allow the PE to update accordingly when source capabilities are received. BRANCH=None BUG=None TEST=on guybrush, confirm we automatically charge from a PD charger, non-PD charger, and do not automatically charge from another chromebook Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ia7cdf4259c35af32a303113befe0bd2fb26cf6d7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2821365 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829112 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* usb_prl_sm: Fix spellingAbe Levkoy2021-04-151-1/+1
| | | | | | | | | | | | | | wad -> was BUG=none TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I75647696c7150b03d681e190d803fd5de28523d5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2812140 Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829111
* npcx: watchdog: fix the way to check watchdog expiration for aux timerJun Lin2021-04-151-44/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the original watchdog driver, we use an ITIM (auxiliary) timer to check the watchdog counter periodically (every 1100 ms). If the counter value is less than WDCNT_DELAY, which means more than 1600 ms has passed since the last watchdog reloads, the watchdog panic should be issued. However, this mechanism may cause the watchdog to happen randomly at 1600~2700 ms. This is because the aux timer and watchdog timer are not aligned. In this CL, we aligned the watchdog timer and aux timer by reloading both watchdog count and aux timer count in HOOK_TICK. BRANCH=none BUG=b:184681421 TEST= 1. "watims 1200", see panic trace printed but no EC reset. 2. "waitms 2000", see panic trace printed and EC reset. 2. "crash watchdog", see panic trace printed and EC reset. Signed-off-by: Jun Lin <CHLin56@nuvoton.com> Change-Id: Ic86d1b238d40fda76af9c38561e5669c13167a32 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2814041 Tested-by: CH Lin <chlin56@nuvoton.com> Reviewed-by: Wai-Hong Tam <waihong@google.com> Commit-Queue: CH Lin <chlin56@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829110 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* Lindar: Create lightbar command for factory testreno.wang2021-04-151-1/+206
| | | | | | | | | | | | | | | | | | | Add console/host, ectool, command for testing BUG=b:184821618 BRANCH=volteer TEST=make buildall, test command, ex. "ectool lighbar off". Lindar: Lightbar test code Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: I2b250d1b9bbc34ef533da34588ee969104f3b7f3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2814721 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit f33381b0485662264cda1986a2427a7170a8d6c4) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825979 Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* Lindar: Move to SSFC for lightbar instead of SKUIDreno.wang2021-04-151-5/+68
| | | | | | | | | | | | | | | | | | | | 1. Move to SSFC to check if system support lightbar instead of sku id 2. Add lightbar 12 led support and EC can base on SSFC_LIGHTBAR type to adopt different lightbar led cfg. BUG=b:183826778 BRANCH=volteer TEST=makee buildall, test SSFC_LIGHTBAR Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: Ic8fac16e846638c403e37261ecf15a72e805a8e0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2822270 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit 0d8c3b44f787d9532818bc072980ecb49dd80c9f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825978 Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* Lindar: Lightbar V9 SPECreno.wang2021-04-151-93/+182
| | | | | | | | | | | | | | | | | | | | | | | 1. Update code to match lightbar V9 behavior spec 2. Update lightbar led cfg to match lightbar HW design 3. Update amber (orange) color's current to increase brightness for mechanism team's request. BUG=b:183826778 BRANCH=volteer TEST=makee buildall, test lightbar behavior follow V9 SPEC, check lightbar green and amber color brightness. Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: I2626601aebc002fdf03fb5bb10f387a033378fa4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2814720 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit 6cf7eb150c5015f3820449d2a90bceb1dec49482) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825976 Tested-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* volteer: Add SSFC_LIGHTBAR definitionreno.wang2021-04-152-4/+24
| | | | | | | | | | | | | | | | | | | Add LIGHTBAR to volteer's SSFC structure. BUG=b:183826778 BRANCH=volteer TEST=make buildall. Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: Idadc216bbe055d5d5cfa2dc45ced9b39e5594e8c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2814163 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> (cherry picked from commit 086fd1cd78606dc4be5518f20abf429b23a45765) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825975 Tested-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* TCPMv2: Update source PDO flags alwaysDiana Z2021-04-141-8/+12
| | | | | | | | | | | | | | | | | | | | | | | Always ensure we update our source PDO flags when storing partner source cap replies during PE_SNK_Evaluate_Capability. However, only propose a power role swap the first time we're storing source capabilities to prevent infinite PR swap loops between Chromebooks. BRANCH=volteer BUG=b:184971310 TEST=ensure connection with a DRP partner results in correct setting of dual role flags (dual-role for anything we don't want to automatically charge from, dedicated for anything we do want to automatically charge from). Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ida139af43fb384096b14e686cf5bd6bbfdf16aa9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2821602 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> (cherry picked from commit fdea1a4e10b6f52aad7cb48a82bd64a94eb1f69f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2822281 Tested-by: Amber Chen <amber.chen@lcfc.corp-partner.google.com> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Don't retry after failed alt mode entryAbe Levkoy2021-04-142-5/+12
| | | | | | | | | | | | | | | | | | | | If entering DP or TBT alt mode fails, leave the state machine in an inactive state. Allow the DPM to see that the mode entry process is done and stop trying to send more VDMs. BUG=b:184197145,b:179443762 TEST=make buildall TEST=Pass TDA.2.1.2.1 on Voxel with AP-driven mode entry TEST=Enter, exit, and reenter DP and TBT mode with host commands BRANCH=firmware-volteer-13672.B-main Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: If72b3410f9aa174c48c65a8ca908d79e2090fa62 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2798525 (cherry picked from commit e09b3110611a5e12de424ef62d2290c9425a37d9) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825349 Tested-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* TCPMV2: Remove redundant chunking time constantsAbe Levkoy2021-04-141-2/+0
| | | | | | | | | | | | | | | | | | Remove PD_T_CHUNK_SENDER_REQ and PD_T_CHUNK_SENDER_RSP. They are redundant with PD_T_CHUNK_SENDER_REQUEST and PD_T_CHUNK_SENDER_RESPONSE. BUG=b:179443762 TEST=make buildall BRANCH=firmware-volteer-13672.B-main Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: Idf12b08af92bbff57fc9a587d17367ade7d8cef3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2812139 Reviewed-by: Diana Z <dzigterman@chromium.org> (cherry picked from commit 0a6f5910bfdfe60bd965140f58516f46c7d9f81e) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825348 Tested-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* TCPMv2: Set SOP before requesting chunkAbe Levkoy2021-04-141-0/+1
| | | | | | | | | | | | | | | | | | | | When requesting the next chunk in the RCH state machine, set the SOP type for the request to the type of the just-received chunk response. Do not just use the SOP type of the last transmitted message. BUG=b:179443762 TEST=Pass TD.PD.SRC3.E32 with SOP' traffic immediately before chunk 0 BRANCH=firmware-volteer-13672.B-main Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: Ifb520bb7ee439ea895b11938395a943d5ca32edf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2812138 Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Scott Collyer <scollyer@chromium.org> (cherry picked from commit d1924be854913acf1b42fc9fff9c547c947b72b7) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2825350 Tested-by: Jacky Wang <jacky5_wang@pegatron.corp-partner.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* TCPMV2: Default PD Policy ManagementSam Hurst2021-04-135-18/+104
| | | | | | | | | | | | | | | | | | | | | | | A simple implementation to manage PD Policies on honeybun devices. This is meant as an interim solution until a more robust solution is implemented BUG=b:183026242 BRANCH=none TEST=make runtests Tested on Voxel by plugging in a dock Signed-off-by: Sam Hurst <shurst@google.com> Change-Id: Ib8b38754e21b8497fe28855a7f80d2962a4ae7f4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2774128 Reviewed-by: Yuval Peress <peress@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2821459 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* isl9241: Toggle learning mode when fully chargedDevin Lu2021-04-091-0/+25
| | | | | | | | | | | | | | | | | | In low-power states, the ISL9241 may become stuck in CCM, consuming excess power. Toggle learning mode to enter DCM and save power. This is a workaround recommended by Renasas. BUG=b:183771327 BRANCH=firmware-volteer-13672.B-main TEST=Verifed charger doesn't stuck in CCM mode. Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Change-Id: I70bf088b9214fd4b3cee137da561ba84e854106a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2789811 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org> (cherry picked from commit 393c3c20dfd15d666c84b88a23cadac1c6dadb3f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2814719
* voxel: add New battery COSMX AP20CBLBen Chen2021-04-092-0/+30
| | | | | | | | | | | | | | | | | | new battery config : AP20CBL BUG=b:184225420 BRANCH=volteer TEST=Check found battery info in console and cutoff work. Change-Id: I9496eb025a20a9da029be060dc7df50cd6b04306 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2799332 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816498 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* boldar: change lid sensorDeepti Deshatty2021-04-092-12/+12
| | | | | | | | | | | | | | | | | | change lid sensor from BMA255 to LIS2DH12 BRANCH=none BUG=none TEST=Verified the LIS2DH12 detection on the target system. Change-Id: I014917c8eab60e1582f08dd8259efdec92ca6d91 Signed-off-by: Deepti Deshatty <deepti.deshatty@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2812477 Reviewed-by: Sooraj Govindan <sooraj.govindan@intel.com> Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816157 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* hooks: Avoid torn accesses in the hook taskEvan Green2021-04-091-16/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hook task runs at the lowest priority, and both reads from and writes to a data structure that can be changed out from under it at any time. This is unsafe, and can cause missed hook events and double hook events. For example, the hook task reads __deferred_until[i], a 64-bit value, in two 32-bit reads. If the hook task is interrupted during this read, and the interruption changes the value, the hook task may read a totally bogus value. This is rare, as overflows across this 32-bit boundary don't happen often, but leads to unpredicable behavior when they do. The writes the hook task does are also problematic, since for instance the hook may have been rescheduled just after the slow old hook task entered its if clause deciding to run the hook, but before it clobbered __deferred_until[i] back to zero. Things get worse if the hook routine pointer ever changes, though I don't think we're currently doing that anywhere today. Instead, disable interrupts while the hook data structure is being manipulated as a makeshift lock around it. Remove the defer_new_call variable as well, since the new deadline is now computed atomically (and without the possibility of torn reads). BUG=b:178660461, b:179062230 BRANCH=None TEST=Run suspend 2500 on Boten, observe no spurious s0ix timeouts. Signed-off-by: Evan Green <evgreen@chromium.org> Change-Id: Iff0d596014e1e79dd9691d363fdc8e54bfe2dff0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2805222 Reviewed-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816156 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Detach from debug devices in Unattached entryDiana Z2021-04-091-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Call debug detach routine on the TCPC before setting our terminations in Unattached.SNK/SRC. This will cover more code paths than attempting to ensure we call the debug detach from every possible chipset transition, sysjump, etc. Note we should still debug detach in Attached exits when PR swapping. BRANCH=None BUG=b:183619502 TEST=on Galith, confirm that: - firmware_UserRequestRecovery passes reliably - board is able to boot with no battery and a charger attached in either port Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I6cef8ce57a569b0e15e1e10b77c830b1c7a55d75 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2792690 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816155 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* boldar: Reset SLP VW signals on EC-AP eSPI resetSooraj Govindan2021-04-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This enables an option for the NPCX eSPI support code to reset SLP signals when eSPI# is asserted because of a global reset. This is needed exclusively on platforms that do not use deep Sx. The EC console apshutdown command forces the AP into G3 but the SLP_S4 signal is not reset in this case as virtual wire signals are not reset on ungraceful AP shutdown (global reset). BRANCH=none BUG=none TEST=Use EC "powerindebug" command to observe the SLP_S4 virtual wire is now reset after "apshutdown" command. Signed-off-by: Sooraj Govindan <sooraj.govindan@intel.com> Change-Id: I09b78492d24ddeb2e372b7a2390854bd991488a6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2803999 Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816154 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* TCPMv2: Increment Vconn swap counter after sendDiana Z2021-04-091-1/+3
| | | | | | | | | | | | | | | | | | | During initial connection, Vconn swaps may be discarded without sending. Only count a Vconn swap for the purposes of the counter when the swap was successfully sent. BRANCH=Volteer BUG=b:182885623 TEST=verify two Voxels connected together are reliably able to enter TBT mode Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ia76f03ee4c517d297061bda9dc9b5bfbf5990485 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2776213 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2816153 Tested-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* Lindar: Lindar's lightbar support in S0ix/S3reno.wang2021-04-054-2/+480
| | | | | | | | | | | | | | | | | | | | | | | | | | 1. Lid is closed, lightbar keep off 2. Lid is opened, its behavior follow below. AC+Battery < 20%, lightbar solid 2 amber led on. AC+Battery < 40%, lightbar solid 4 amber led on. AC+Battery < 60%, lightbar solid 6 amber led on. AC+Battery < 80%, lightbar solid 8 amber led on. AC+Battery < 97%, lightbar solid 10 amber led on. AC+Battery >= 97%, lightbar solid 10 green led on. Battery only >= 15%, lightbar keep off. Battery low < 15%, lightbar blink amber color, 1s on, 5s off. 3. Some SKU un-support lightbar, and shouldn't run lightbar task. 4. Lightbar is powered by PP3300_A, and shouldn't run it in S4/S5/G3. 5. Add debounce time for lightbar state change. BUG=b:174133147 BRANCH=firmware-volteer-13672.B-main TEST=make buildall, test lightbar behavior in S0ix/S3. Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: Ibbdc17627f7b2d1b2abbbad23b6c06024455e66b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2803991 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* ppc/syv682x: support C versionEric Yilun Lin2021-04-013-11/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | C version won't block I2C accessing to CONTROL4(to on/off Vconn) reg when smart discahrge enabled. This allows us to re-enable the smart discahrge on boards using SYV682C. This CL support the feature by adding: 1. CONFIG_USBC_PPC_SYV682C 2. CONFIG_USBC_PPC_SYV682X_SMART_DISCHARGE also, hayato uses different SYV682 versions across revisions, add a overridable function syv682x_board_is_syv682c() for handling board revision issue. BUG=b:160548079 b:176876036 TEST=Hayato meets tVconnOff, and tVbusDischarge BRANCH=asurada Change-Id: I89b57b8c20907249d5d97140289fb0570bd58b46 Signed-off-by: Eric Yilun Lin <yllin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2738506 Reviewed-by: Ting Shen <phoenixshen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2799922 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
* SYV682x: Fix Source OCP for SYV682B revisionEric Herrmann2021-04-012-14/+19
| | | | | | | | | | | | | | | | | | | | | | | Force the EC to wait at least 15ms before checking to see if the alerts are cleared. This will fix source OCP for the SYV682B, which added a 10ms HW deglitch to the source OC alert. BUG=b:183761055 TEST=Check that OCP is triggered instead of TSD when the port is overloaded on SYV682B TEST=Check that the SYV682A OCP still works with 100ms deglitch TEST=make buildall BRANCH=None Signed-off-by: Eric Herrmann <eherrmann@chromium.org> Change-Id: I40207fecc034a8e8238f0deaa7beeaf8dab2a2d6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2787706 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2799921 Tested-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>