summaryrefslogtreecommitdiff
path: root/baseboard
Commit message (Collapse)AuthorAgeFilesLines
* baseboard/dedede: Free up more flash spaceTom Hughes2023-03-161-0/+4
| | | | | | | | | | | BRANCH=none BUG=b:172020503, b:256193799 TEST=make buildall Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: Iaa06710e9d83f240252c0fe07de88c29280a79bb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4033070 Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* Replace CONFIG_DMA with CONFIG_DMA_CROS in EC codebasePatryk Duda2023-03-013-3/+3
| | | | | | | | | | | | | | | | The config from EC collides with the same config from Zephyr. BUG=b:239712345 BRANCH=none TEST=make runhosttests buildall Change-Id: Ic6e63ea6dd9e745e82feb2af04b77069c2d78af1 Signed-off-by: Patryk Duda <pdk@semihalf.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4295699 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Commit-Queue: Patryk Duda <patrykd@google.com> Tested-by: Patryk Duda <patrykd@google.com>
* dibbi: Split I2C configuration from baseboard and add HDMI-related busesSam McNally2023-02-151-2/+2
| | | | | | | | | | | BUG=b:269367960 TEST=i2cscan can scan all buses BRANCH=none Change-Id: Iccb3a28a24de4e82119d50a1f581162ac58913cf Signed-off-by: Sam McNally <sammc@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4252439 Reviewed-by: Peter Marheine <pmarheine@chromium.org>
* trogdor: Do not change the PPC SW and TCPC MUX when HPD changesWai-Hong Tam2023-02-111-22/+0
| | | | | | | | | | | | | | | | | | | During the DP-Config phase, when the DP-Config VDM is acked, the PPC SW and TCPC MUX are connected. Afterward, when the EC receives any HPD event (High, Low, or IRQ), should not change the PPC SW and TCPC MUX. Otherwise, disconnecting any of them when HPD Low makes the AUX termination disappear. BRANCH=trogdor BUG=b:247005613 TEST=Connect the device through a Type-C dongle to a monitor, unplug the monitor from the dongle, and replug it again. The monitor should detect the device and assert HPD high. Change-Id: Id890bfe8fec23109da2b36aa9662e24aec4ae32c Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4242456 Reviewed-by: Alexandru Stan <amstan@chromium.org>
* Cherry: move isl9238c_hibernate to board_hibernateSue Chen2023-02-071-1/+5
| | | | | | | | | | | | | move isl9238c_hibernate from board_hibernate_late to board_hibernate. BUG=none BRANCH=cherry TEST=none Change-Id: I37ad977db73410c9e68a2850a5984df052e86db1 Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4225332 Reviewed-by: Ting Shen <phoenixshen@chromium.org>
* dibbi: Updating EC pinout based on latest schematicsAdam Mills2023-02-061-0/+3
| | | | | | | | | | | | BUG=b:257833880 TEST=make -j BOARD=dibbi BRANCH=dedede Change-Id: Iec7296d47565714682d6ad59bf4e4273da631cb0 Signed-off-by: Adam Mills <adamjmills@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4199243 Reviewed-by: Liam Flaherty <liamflaherty@chromium.org> Reviewed-by: Sam McNally <sammc@chromium.org>
* Asurada: move isl9238c_hibernate to board_hibernateSue Chen2023-01-311-2/+5
| | | | | | | | | | | | | move isl9238c_hibernate from board_hibernate_late to board_hibernate. BUG=b:247925239 BRANCH=asurada TEST=hibernate Change-Id: Ie7130fac68ce045da18bbe369c14d07d5253d017 Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4165983 Reviewed-by: Ting Shen <phoenixshen@chromium.org>
* Default charger current derating to 5%Peter Marheine2023-01-122-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not derating seems like a common pitfall that can cause problems with some chargers, so set a reasonably conservative default. 5% is chosen as the most common derating factor used among boards today (counting occurrences in source code, so this may undercount 5% occurrences because several projects set 5% at the project rather than board-level): 1. 38 x 5% 2. 23 x 4% 3. 6 x 10% 3. 2 x 3% 4. 1 x 2% Boards that currently configure this setting are modified only to continue building without warnings regardless of whether they use the new default value in order to signal that they were explicitly configured. BUG=b:260774380 TEST=make buildall / zmake build -a BRANCH=none Change-Id: I017849d38572fbc48090ae1fa2c539b808e426f9 Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4109651 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* baseboard: enable powered of PP1 and PP2 for port 1amber.chen2023-01-061-0/+9
| | | | | | | | | | | | | | | | | | | Due to in Treeya360 project add "#undef CONFIG_HIBERNATE_PSL" this configuration, so PPC1 remains powered during hibernate. PPC1 therefore now needs to be configured the same way as PPC0, to mimic the previous dead-battery behavior and allow wake on AC plug. BRANCH=none BUG=b:259211176 TEST=make buildall -j48 Change-Id: Ie353a3f3ca118dd94a2131d8ea62ddf5ee12c470 Signed-off-by: amber.chen <amber.chen@lcfc.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4119878 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* trogdor: Handle HPD High embedded in DP-Status VDMWai-Hong Tam2023-01-061-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HPD state is a field of the DP-Status VDO. The DP-Status VDO is embedded in either the DP-Status VDM or the Attention VDM. The DP-Status happens before the DP-Config. The pin assignment of the PD partner hasn't been set up yet. Passing through the HPD to the DP PHY is too early. Racing it may fail the link-training. Should wait until the DP-Config is done. BRANCH=trogdor BUG=b:247005613 TEST=Connect the device through a Type-C dongle to a monitor and verify the screen. Try the combinations: * Plug C0 monitor -> plug C0 dongle -> screen on C0 monitor * Plug C0 dongle -> plug C0 monitor -> screen on C0 monitor -> unplug C0 monitor -> plug C0 monitor -> screen on C0 monitor * Plug C0 dongle -> plug C0 monitor -> screen on C0 monitor -> plug C1 dongle -> -> plug C1 monitor -> no screen on C1 monitor -> unplug C0 monitor -> replug C1 monitor -> screen on C0 monitor * Plug C0 dongle -> plug C1 dongle -> plug C1 monitor -> screen on C1 monitor -> unplug C1 dongle -> plug C0 monitor -> screen on C0 monitor Change-Id: I796bc459659ddccf860f540de9409159e3c99d36 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4076561 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org>
* trogdor: Pass through AUX termination when DP-Config is ackedWai-Hong Tam2023-01-061-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hardware block diagram is like: AUX termination | +----+--- TCPC MUX --- PPC SW --- Type-C connector (port-0) DP PHY -- DP MUX +----+--- TCPC MUX --- PPC SW --- Type-C connector (port-1) | AUX termination The current implementation muxes the path end-to-end on a HPD high event. The dependencies are: * Chromebook muxing the AUX channel depends on a HPD high event, * DP sink raising HPD depends on a cable connection detected (auto- probe), * Successful probe of a cable connection depends on AUX termination, which cause a dead-lock. This change breaks the dead-lock. During the DP-Config phase, when the DP-Config VDM is acked, connect the PPC SW and TCPC MUX, but leave the DP MUX disconnected. So the DP sink can detect the correct AUX termination. The DP port selection mux is not enabled yet so no signal passes through to the DP PHY. As the TCPC MUX is enabled in the DP-Config phase, we can't use the TCPC MUX status as the condition to check if the DP path is muxable. Change it to the DP selection mux. BRANCH=trogdor BUG=b:247005613 TEST=Together with the next CL. Connect the device through a Type-C dongle to a monitor and verify the screen. Try the combinations: * Plug C0 monitor -> plug C0 dongle -> screen on C0 monitor * Plug C0 dongle -> plug C0 monitor -> screen on C0 monitor -> unplug C0 monitor -> plug C0 monitor -> screen on C0 monitor * Plug C0 dongle -> plug C0 monitor -> screen on C0 monitor -> plug C1 dongle -> -> plug C1 monitor -> no screen on C1 monitor -> unplug C0 monitor -> replug C1 monitor -> screen on C0 monitor * Plug C0 dongle -> plug C1 dongle -> plug C1 monitor -> screen on C1 monitor -> unplug C1 dongle -> plug C0 monitor -> screen on C0 monitor Change-Id: Id24ce4627a1c015ad2dc9748578fa1a6d68122c6 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4076560 Reviewed-by: Stephen Boyd <swboyd@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Stephen Boyd <swboyd@chromium.org>
* kalista: Increase fan to reduce throttling.Richard Yeh2022-12-131-57/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chromebox for Meetings (CfM) devices are videoconferencing appliances. Discovering that a significant fraction of our fleet was throttling the CPU due to temperature, resulting in bad video quality, we have decided that these devices should never throttle. The present change reduces the temperature thresholds at which we increase fan speeds. For most of the time, when the CfM is idle, we expect no or little change in fan speeds. During calls, the CfM CPU can exceed 60 C, and the sensors controlling the fan are typically 10-20 degrees C cooler than the CPU, so we set the maximum-fan temperature to 50-55 C in an attempt to arrest any temperature increase before the CPU reaches throttling temperatures. We add fan tables to enable hysteresis in the fan speed setting. Fan RPMs are chosen to span the min-to-max range, while avoiding 50 Hz and 60 Hz line frequencies. fizz and kalista boards are shared with non-CfM versions, while the other boards are CfM-only. Since those boards are several years old, we plan to build these firmware changes only into CfM-branch releases, not all fizz and kalista devices. Additional details at go/cfm-overheating . Temperature traces with load testing on both top-of-tree and firmware with this change are shown at go/cfm-overheating#heading=h.ykpzxotgnu2j BRANCH=update-fan-tables BUG=b:252966838,b:191187610,chromium:1383859 TEST=Confirmed validity of settings with `ectool thermalset`. Built firmware, flashed to endeavour and excelsior (fizz), verified that fan turns on earlier. This does not completely prevent throttling from 47.25 W to 15.00 W on Kaby Lake boards (endeavour, fizz, kalista), but it does prevent dropping below 15.00 W. Comet Lake boards (ambassador, genesis, moonbuggy, scout) start at 15.00 W and rarely throttle anyway. Change-Id: I9259b05bcfa1bf4e6433df74913668424d005dbd Signed-off-by: Richard Yeh <rcy@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4060608 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* adlrvp: Enable system boot time loggingRajesh Kumar2022-12-131-0/+3
| | | | | | | | | | | | | | | | | This CL enables system boot time logging support for adlrvp. BUG=b:249163956 BRANCH=none TEST='ectool boottime' AP console command is used to fetch data 'reboot' on AP console to trigger warm reboot 'apshutdown' on EC console to trigger cold reboot Signed-off-by: Rajesh Kumar <rajesh3.kumar@intel.com> Change-Id: I7b975aafe7e1846e132827e061551af11e7d1101 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3832585 Reviewed-by: Boris Mittelberg <bmbm@google.com> Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* zephyr: move usbc interrupt handler to shimJason Yuan2022-12-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | various board specific TCPC interrupt handler have been moved into tcpc.c in shim. ports are now automatically configured from the i2c dts instead of hardcoded. this does not remove the handler binding from interrupts.dts or initialize the interrupt from the driver, which will be added in a followup CL. stub test handler in test/.../stubs.c has been removed and existing tests have been modified to use new tcpc driver. BUG=b:256996124 TEST=twister, usbc charging on lazor BRANCH=none Signed-off-by: Jason Yuan <jasonyuan@google.com> Change-Id: Iac05907f3c286f26329dac7f99730396d23b1166 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4024013 Commit-Queue: zhi cheng yuan <jasonyuan@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Sam Hurst <shurst@google.com> Commit-Queue: Sam Hurst <shurst@google.com> Auto-Submit: zhi cheng yuan <jasonyuan@chromium.org> Tested-by: zhi cheng yuan <jasonyuan@chromium.org>
* board: Sort header filesJeremy Bettis2022-12-016-3/+6
| | | | | | | | | | | | | | | | | | | | Sort all includes in board with the clang-format rules used by the zephyr project. BRANCH=None BUG=b:247100970 TEST=zmake build -a TEST=./twister --clobber -v -i TEST=make -j72 buildall_only runtests TEST=zmake compare-builds -a Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I6ad72b167cbb768a64c338fa633eb4bf5a401897 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4060360 Reviewed-by: Tom Hughes <tomhughes@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
* Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMITPeter Marheine2022-11-2916-16/+19
| | | | | | | | | | | | | | | | | | | "Default input current" is not a very clear name, so rename this option to better express its use as a default value that is set in the charger. This is made possible by splitting other uses into CHARGER_MIN_INPUT_CURRENT_LIMIT, making the only use for CHARGER_INPUT_CURRENT be as a default. BUG=b:163093572 TEST=make buildall; zmake build -a BRANCH=none LOW_COVERAGE_REASON=isl9241 and sm5803 currently lack emulators Signed-off-by: Peter Marheine <pmarheine@chromium.org> Change-Id: Ia9c1df9061825b15477466e85343afeb2a371288 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4025404 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* dibbi: Update board specific power implementationLiam Flaherty2022-11-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | Removed battery and battery charging support, as dibbi does not have either of these. Added support for dual barrel-jack/USB-C power supplies and update USB PD policies accordingly. Added support for USB-C0 output load-switch. Made changes in dedede baseboard to allow alternate implementation of extpower_is_present with the absence of a charger chip. BUG=b:257377326 BRANCH=dedede TEST=make -j BOARD=dibbi Signed-off-by: Liam Flaherty <liamflaherty@chromium.org> Change-Id: I81d01a88caf174eb038685bf098686e8a310a9b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4054386 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Sam McNally <sammc@chromium.org> Reviewed-by: Adam Mills <adamjmills@google.com> Tested-by: Adam Mills <adamjmills@google.com>
* marasov: Modify TypeC and TypeA configuration.Michael5 Chen12022-11-241-0/+2
| | | | | | | | | | | | | | | | | | | Depend on design, 1. Remove BC1.2 (USB_CHARGE, CHARGER_RAMP). 2. Remove TypeC port 2. 3. Change PPC to SYV682 for typeC port 1. 4. Support 2 USB TypeA ports. BUG=b:259002141,b:255184961 BRANCH=none TEST=make BOARD=marasov Signed-off-by: Michael5 Chen1 <michael5_chen1@pegatron.corp-partner.google.com> Change-Id: I8dbd75ffc8666b8931ef0e486e6e6a3ba6ac0c56 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4022557 Reviewed-by: Boris Mittelberg <bmbm@google.com> Reviewed-by: Kyle Lin <kylelinck@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* Add default implementation of board_set_charge_limitPeter Marheine2022-11-2410-56/+2
| | | | | | | | | | | | | | | | | | | The majority of boards simply call charge_set_input_current_limit() from board_set_charge_limit() now that the minimum current limit and derating are available as config options. Make this the default behavior of the charge manager, overridable by boards as needed. Boards that have existing custom behavior retain it, with their versions of board_set_charge_limit() marked as __override as necessary. BUG=b:163093572 TEST=make buildall; zmake build -a BRANCH=none Signed-off-by: Peter Marheine <pmarheine@chromium.org> Change-Id: I72475ca0e8381596cafbcda4b042c7f884ae0432 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4022857 Reviewed-by: Keith Short <keithshort@chromium.org>
* baseboard: Remove unused externsJeremy Bettis2022-11-232-36/+0
| | | | | | | | | | | | | | | | | | | | | The symbols zork_base_standard_ref and grunt_base_standard_ref are never actually defined or used anywhere. BRANCH=None BUG=b:247100970 TEST=zmake build -a TEST=./twister --clobber -v -i TEST=make -j$(nproc) buildall_only runtests TEST=zmake compare-builds Change-Id: I1425ceb38f1de45e50c98f86f4df4221602120e0 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4049881 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Simon Glass <sjg@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org>
* baseboard: Move conditional includes to endJeremy Bettis2022-11-231-5/+6
| | | | | | | | | | | | | | | | | | | | Move the zephyr only headers to be last, so the others will sort correctly with clang-format. BRANCH=None BUG=b:247100970 TEST=zmake build -a TEST=./twister --clobber -v -i TEST=make -j$(nproc) buildall_only runtests TEST=zmake compare-builds Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I88211638be6ee1d3558a42e641d7c1882d7294cc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4049880 Reviewed-by: Aaron Massey <aaronmassey@google.com> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Tested-by: Jeremy Bettis <jbettis@chromium.org>
* Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMITPeter Marheine2022-11-2324-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This splits the dual use of CONFIG_CHARGER_INPUT_CURRENT into two different symbols, changing the uses of that which are used to set a minimum current limit to be CONFIG_CHARGER_MAX_INPUT_CURRENT_LIMIT. Most boards implement this in the same way within either the board or baseboard, so handling of the new option is moved into charge_set_input_current_limit (which is called by every user of the option) and every board which repeated this pattern has the new symbol set to the same value as the old one, with the duplicated code deleted. One functional change to the charge manager is made: when charging stops, the input current limit is set to the default value (CONFIG_CHARGER_INPUT_CURRENT) rather than 0. This captures the intent that the default current is appropriate at any time, which was previously configured by individual boards' implementation of board_set_charge_limit() while still allowing the limit to be set lower as needed. To verify that all changes are appropriate, the following has been manually checked: * All boards with a change to a .c file also have a .h change * All boards without a changed .h file have a changed baseboard.h * For Zephyr projects, those with a changed .c file have config added for the minimum limit and others (only corsola) are unchanged to leave it off. This is intended to verify that each board that duplicated the MAX() logic has its configuration updated to use the shared copy, and that boards with that code in the baseboard also update their configuration. BUG=b:163093572 TEST=make buildall; zmake build -a BRANCH=none LOW_COVERAGE_REASON=added lines will soon be deleted Change-Id: Ia460a16293c1fb82aac3784fd9be57ba0985f2fe Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4019703 Reviewed-by: Keith Short <keithshort@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* baseboard: Sort header filesJeremy Bettis2022-11-2342-105/+97
| | | | | | | | | | | | | | | | | | | | | Sort all includes in baseboard with the clang-format rules used by the zephyr project. BRANCH=None BUG=b:247100970 TEST=zmake build -a TEST=./twister --clobber -v -i TEST=make -j72 buildall_only runtests TEST=zmake compare-builds Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I259d3bae478d1f649623bc56339e2f8423ede0dc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4049441 Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Simon Glass <sjg@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Simon Glass <sjg@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
* ec: IWYU Add missing includeJeremy Bettis2022-11-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | cbi.h needs common.h for __override_proto Zephyr's inttypes.h includes stdint.h, so do the same for ec's inttypes.h also. BRANCH=None BUG=b:247100970 TEST=zmake build -a TEST=./twister --clobber -v -i TEST=make -j$(nproc) buildall_only runtests TEST=zmake compare-builds Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I8917f1ad6a04dc35c2ef8eb437d9cf4cd5ec7fa7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4049440 Commit-Queue: Tristan Honscheid <honscheid@google.com> Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Tristan Honscheid <honscheid@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
* driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70Tommy Chung2022-11-223-3/+3
| | | | | | | | | | | | BUG=b:259354679 BRANCH=none TEST=make buildall -j Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: Ia93b7fb6c927e2d527186e0d59d3e37da01ed820 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4001240 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCTPeter Marheine2022-11-175-19/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many boards derate their charge current limits by some fixed ratio, which results in duplicate code appearing in many different boards. Since nearly all of these are in implementations of board_set_charge_limit() and themselves call charge_set_input_current_limit(), make that derating a config option and move it into charge_set_input_current_limit(). This makes most boards' implementations uniform and ripe for further simplification in later changes. For those boards that do more complex adjustments, those can be retained by keeping the existing logic in board_set_charge_limit(). Several boards also uselessly defined multiple versions of board_set_charge_limit(): the redundant ones are removed. BUG=b:163093572 TEST=make buildall; zmake build -a BRANCH=none LOW_COVERAGE_REASON=follow-up CLs delete uncovered code Change-Id: I0a7162e72538a91ad06ba85b91a10b93eb6af96b Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4015966 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
* baseboard/kukui: Free up additional flash spaceTom Hughes2022-11-141-0/+6
| | | | | | | | | | | | BRANCH=none BUG=b:172020503, b:256193799 TEST=make buildall Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I746815d69bbdab3dd95ba69f47d4c1f7494fe642 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4024040 Reviewed-by: Eric Yilun Lin <yllin@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* tree: Remove CONFIG_STM_HWTIMER32Tom Hughes2022-11-114-4/+0
| | | | | | | | | | | | | | | | | | | | | CONFIG_STM_HWTIMER32 was used to choose between a 32-bit timer and 16-bit timer. The 16-bit timer code was removed in https://crrev.com/c/3388064, so we no longer need this config. Command used: git grep --name-only CONFIG_STM_HWTIMER |\ xargs sed -i '/CONFIG_STM_HWTIMER32/d' BRANCH=none BUG=b:214423235 TEST=make buildall -j Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I89da8915cd5a467975cd8f90e734ea2b11f18cb3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3388065 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Patryk Duda <patrykd@google.com>
* guybrush: fix type-c port checkBoris Mittelberg2022-11-101-1/+1
| | | | | | | | | | | | | | Fix potential memory corruption in port check BUG=b:64477774 BRANCH=none TEST=none Signed-off-by: Boris Mittelberg <bmbm@google.com> Change-Id: Ib1a74f06d3299a1b46514f888dbb250831051d95 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4018210 Reviewed-by: Rob Barnes <robbarnes@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* brask: customize the button debounce timeZhuohao Lee2022-10-281-0/+2
| | | | | | | | | | | | | | | | | | | To avoid the EC reset signal coming from the H1 breaks the SOC power rails requirement, we increase the button debounce time from 30ms to 100ms. This can workaround the power sequence problem when user follows the recovery guidance in the official document. BUG=b:255963865 BRANCH=none TEST=The device can boot to the recovery mode successfully. Change-Id: Ifc4c7d9892069124b0cfb05d9799ce38ae0c78cf Signed-off-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3990092 Tested-by: Matt Wang <matt_wang@compal.corp-partner.google.com> Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: Randy Wang <ifanw@google.com>
* tree: Enable warning for fallthrough in switch statementsTom Hughes2022-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The EC code has generally been good about adding comments about intentional fallthrough in switch statements, but there were a few cases without comments (e.g., https://crrev.com/c/3949622). Enabling -Wimplicit-fallthrough generates a compiler warning if the fallthrough is not annotated with __attribute__((fallthrough)). For convenience, we add a "__fallthrough" macro for this attribute. See https://clang.llvm.org/docs/AttributeReference.html#fallthrough and https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html. BRANCH=none BUG=b:253644823 TEST=make buildall LOW_COVERAGE_REASON=legacy code Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I9f4d6049f4507a25ce706675d159b70e28b4b825 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3957420 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* baseboard/intelrvp: Add castsTom Hughes2022-10-171-12/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building with clang it warns: baseboard/intelrvp/adlrvp.c:235:23: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] .retimer_rst_gpio = IOEX_USB_C3_BB_RETIMER_RST, ^~~~~~~~~~~~~~~~~~~~~~~~~~ baseboard/intelrvp/adlrvp.c:236:21: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] .usb_ls_en_gpio = IOEX_USB_C3_BB_RETIMER_LS_EN, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ baseboard/intelrvp/adlrvp.c:310:44: error: implicit conversion from enumeration type 'const enum gpio_signal' to different enumeration type 'enum ioex_signal' [-Werror,-Wenum-conversion] ioex_set_level(bb_controls[me->usb_port].usb_ls_en_gpio, 1); ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ baseboard/intelrvp/adlrvp.c:319:44: error: implicit conversion from enumeration type 'const enum gpio_signal' to different enumeration type 'enum ioex_signal' [-Werror,-Wenum-conversion] ioex_set_level(bb_controls[me->usb_port].retimer_rst_gpio, 1); ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ BRANCH=none BUG=b:172020503 TEST=./util/compare_build.sh -b all -j 120 => MATCH Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I5ba7821d47b07a14925274fadbfaf963d061a4b6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3953253 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* baseboard/trogdor: Enable LTOTom Hughes2022-10-141-0/+2
| | | | | | | | | | | | | | | | | | | Before (homestar): RO: 5376 bytes in flash and 28448 bytes in RAM still available RW: 5536 bytes in flash and 28448 bytes in RAM still available After (homestar): RO: 16272 bytes in flash and 28832 bytes in RAM still available RW: 16428 bytes in flash and 28832 bytes in RAM still available BRANCH=none BUG=b:172020503 TEST=make buildall Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I48613449cab4977c59a47d98255e0ab683a46fbf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3952909 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
* baseboard/intelrvp: Work around clang bugTom Hughes2022-10-141-18/+20
| | | | | | | | | | | | | | | | | | | | clang warns: error: initializer element is not a compile-time constant There is an upstream LLVM review with proposed fix: https://reviews.llvm.org/D76096. In the meantime, we will work around it. BRANCH=none BUG=b:172020503, b:202062363 TEST=./util/compare_build.sh -b all -j 120 => MATCH Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: If48c7bd9544c0fae0a889693122673016e1ba183 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3953254 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* tree: Remove CONFIG_SOFTWARE_PANICTom Hughes2022-10-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | It's always enabled in the core/<core>/core_config.h files. The following script demonstrates that it's enabled in all boards: for board in `make print-boards`; do make print-configs board="${board}" | grep -q CONFIG_SOFTWARE_PANIC if [ $? -ne 0 ]; then echo "${board} failed" exit 1 fi done BRANCH=none BUG=none TEST=make buildall Cq-Depend: chromium:3943248 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: If683b244f17b48bedf3699f2b24e83b5ad6e849e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3933255 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* adlrvp: Set the DRP state as SOURCE in S0poornima tom2022-09-281-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting the DRP state as PD_DRP_TOGGLE_OFF in RVP as part of CL:3690048 had an impact for bus powered devices like pendrive to go undectected. As default pd state is sink, self powered devices like TBT/USB4 didnot have any issue in detection. Selecting the default DRP state as SOURCE, would ensure that any device(both source and sink based) connected on typec port would starts as source and gets detected fine. BUG=None BRANCH=None TEST=Verify on bus powered and self powered devices on RVP Verified both hotpluggin and coldboot scenario of both bus powered (pendrive, DP dongle) and self powered devices(TBT, USB4) on all ports. In NDA case, all ports entering low power mode as well. ex: Pendrive on P0: pd 0 state Port C0 CC1, Enable - Role: SRC-DFP-VC TC State: Attached.SRC, Flags: 0x8011 PE State: PE_SRC_Disabled, Flags: 0x1000000 TBT on P1: pd 1 state Port C1 CC1, Enable - Role: SNK-DFP-VC TC State: Attached.SNK, Flags: 0x9001 PE State: PE_SNK_Ready, Flags: 0x0201 NDA: pd 2 state Port C2 CC1, Disable - Role: SRC-UFP TC State: LowPowerMode, Flags: 0x0010 PE State:, Flags: 0x8400000 Signed-off-by: poornima tom <poornima.tom@intel.com> Change-Id: I465ff23377058a35a545015c192f804414c57534 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3855157 Tested-by: Poornima Tom <poornima.tom@intel.corp-partner.google.com> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
* Zephyr: Add shim support for PS8818Diana Z2022-09-203-3/+3
| | | | | | | | | | | | | | | | | Add support for the PS8818 in the shim so it can be configured using the devicetree. Note that all of the PS8818's include file is "public" in that boards regularly manipulate the registers directly rather than through well-formed APIs. BRANCH=None BUG=b:244457125 TEST=zmake build skyrim Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ia182ca5617d312db2acb8fb7680a7847a3a7ecb8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3905887 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* brask: Config-guard TBT UFP codeAbe Levkoy2022-09-141-0/+2
| | | | | | | | | | | | | | Only build Thunderbolt UFP config for boards that support Thunderbolt. Reduce code size and avoid linker errors. BUG=b:244467636 TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: Ia6bf6785cc2def57cbcd65eeb25565a15a5c1484 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3887966 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* brya: Config-guard TBT UFP codeAbe Levkoy2022-09-141-0/+2
| | | | | | | | | | | | | | | Only build Thunderbolt UFP config for boards that support Thunderbolt. Reduce code size and avoid linker errors. BUG=b:244467636 TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I9d78c527ee35501add7d0e8ab3974647f1e4d9a7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3887965 Reviewed-by: Boris Mittelberg <bmbm@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* volteer: Config-guard TBT UFP codeAbe Levkoy2022-09-141-0/+2
| | | | | | | | | | | | | | Only build Thunderbolt UFP config for boards that support Thunderbolt. Reduce code size and avoid linker errors. BUG=b:244467636 TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I31b6ff121663a73e46e1eddace59dbb14140ef55 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3887964 Reviewed-by: Keith Short <keithshort@chromium.org>
* goroh: usb_mux: Split struct usb_mux in goroh boardTomasz Michalec2022-09-131-14/+21
| | | | | | | | | | | | | | | | Update goroh board to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I978b1174f8ab2f3274c242c460243c5d97067496 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3780408 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* octopus: usb_mux: Split struct usb_mux in octopus boardTomasz Michalec2022-09-132-23/+31
| | | | | | | | | | | | | | | | Update octopus board to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: If009199437a2aa980fea5bfce82ba0753aad75c7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3780399 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com>
* kalista: usb_mux: Split struct usb_mux in kalista boardTomasz Michalec2022-09-131-5/+8
| | | | | | | | | | | | | | | | Update kalista board to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I36deb3491d71c13221539878d3331196b1c887a7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3780398 Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org> Tested-by: Tomasz Michalec <tmichalec@google.com>
* guybrush: usb_mux: Split struct usb_mux in guybrush boardTomasz Michalec2022-09-131-15/+23
| | | | | | | | | | | | | | | | Update guybrush board to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I57dba5ee02a9ed68df848fb1ff1e307ad128fc89 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3780397 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* grunt: usb_mux: Split struct usb_mux in grunt boardTomasz Michalec2022-09-131-11/+17
| | | | | | | | | | | | | | | | Update grunt board to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I2fdb031b6c5e41cd7cb0183e5835f62bd4d72018 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3779635 Commit-Queue: Tomasz Michalec <tmichalec@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* asurada: usb_mux: Split struct usb_mux in asurada boardsTomasz Michalec2022-09-131-20/+32
| | | | | | | | | | | | | | | | Update asurada boards to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I5a75f017a006137721d39162fcd44a1b0dcfc372 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3779626 Tested-by: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Tomasz Michalec <tmichalec@google.com>
* brya: usb_mux: Split struct usb_mux in brya boardsTomasz Michalec2022-09-131-63/+89
| | | | | | | | | | | | | | | | | Update brya boards to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: Ibfce1a895db0b179672f26cdf2c27b7168bf8985 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3779625 Tested-by: Tomasz Michalec <tmichalec@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* zork: usb_mux: Split struct usb_mux in zork boardsTomasz Michalec2022-09-131-1/+1
| | | | | | | | | | | | | | | | Update zork boards to use new struct usb_mux_chain. BUG=b:236274003 TEST=make buildall BRANCH=None Cq-Depend: chromium:3748785 Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I0ce3899148a8b5e9bc95abbc929adb63f27f42fc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3779619 Commit-Queue: Tomasz Michalec <tmichalec@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
* Update license boilerplate text in source code filesMike Frysinger2022-09-12182-182/+182
| | | | | | | | | | | | | | | Normally we don't do this, but enough changes have accumulated that we're doing a tree-wide one-off update of the name & style. BRANCH=none BUG=chromium:1098010 TEST=`repo upload` works Change-Id: Icd3a1723c20595356af83d190b2c6a9078b3013b Signed-off-by: Mike Frysinger <vapier@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3891203 Reviewed-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* config: rename HOSTCMD_ESPI_* to HOST_INTERFACE_ESPI_*Michał Barnaś2022-09-096-19/+19
| | | | | | | | | | | | | | | Rename ESPI additional configs to match the name of base config that selects ESPI as HOST_INTERFACE. BUG=b:195416058 BRANCH=main TEST=zmake testall && make buildall Change-Id: I137449a1a58b1ea0d9794ebc0900e1b68413819d Signed-off-by: Michał Barnaś <mb@semihalf.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3291744 Reviewed-by: Sam Hurst <shurst@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>