summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* volteer: configure BC1.2 on type-C ports with DTstabilize-14312.B-mainPeter Marheine2021-10-285-4/+28
| | | | | | | | | | | | | This adopts the recently-added support for PI3USB9201 in Zephyr. BUG=b:202397628 TEST=builds BRANCH=None Change-Id: I87c898a4d1296090c723c2802df7cf3a27991aee Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246636 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* zephyr: rename boards/riscv/corsola to boards/riscv/it8xxx2Ting Shen2021-10-285-9/+9
| | | | | | | | | | | | | | | | | Rename folder to the chip's name as per discussion in b/203619750#comment3. BUG=b:202808130 TEST=zmake -D -l DEBUG configure -b zephyr/projects/corsola/krabby/ BRANCH=none Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: I7c05190b5b91c7aa991997cddeded7bd122fdfcf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246990 Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org> Auto-Submit: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* kano: Change LED control behaviorDavid Huang2021-10-284-90/+60
| | | | | | | | | | | | | Change LED control from pwm to gpio. BUG=none BRANCH=master TEST=Check LED status in each state. Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com> Change-Id: I640380175fe505348df3c3fa532c392ffa5943d3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3244810 Reviewed-by: Boris Mittelberg <bmbm@google.com>
* kingoftown: Implement battery_get_vendor_param to read vendor paramsTommy Chung2021-10-282-0/+5
| | | | | | | | | | | | | | Add CONFIG_BATTERY_VENDOR_PARAM and define specific param regs to get battery CT code. BUG=none BRANCH=trogdor TEST=check `ectool batteryparam` cmd on kingoftown. Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: Ib98e1500ac8082568caf7097dec9f10a813da789 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3219978 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* battery: Move battery get/set vendor param to common/battery.cTommy Chung2021-10-2821-164/+71
| | | | | | | | | | | | | | | Since the functions are copied by many boards, move them to common. The specific param regs are defined in each specific boards. BUG=b:203031618 BRANCH=none TEST=make BOARD=burnet/coachz/eve/homestar/kappa/mrbland/quackingstick/ wormdingler. Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: I77c070663ad3e800ec484bd21865c5d911a2c48b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3220718 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Zephyr: Add more i2c enum namesDiana Z2021-10-281-0/+1
| | | | | | | | | | | | | | Add more i2c enum names based on what AMD designs use. BRANCH=None BUG=b:195137794 TEST=zmake testall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I74a88e3d0ea5bbf82cec45e0c185b9258e58f085 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3248972 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Zephyr: Add more GPIO namesDiana Z2021-10-281-0/+3
| | | | | | | | | | | | | | Add some of the GPIO names that AMD boards tend to use. BRANCH=None BUG=b:195137794 TEST=zmake testall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I7fdc8347b63093f7788af5b6f5fd454e8b657ebb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3248971 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* AMD FP6: Correct array sizeDiana Z2021-10-281-1/+1
| | | | | | | | | | | | | | | The value CONFIG_USB_PD_PORT_MAX_COUNT is the standard one to use for arrays representing PD ports. BRANCH=None BUG=b:195137794 TEST=make -j buildall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ic7c6aecfa3b44be4b412919a27be996879315bd3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3248970 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* zephyr: test: ln9310 lion ctrl reg failure pathsAaron Massey2021-10-271-1/+27
| | | | | | | | | | | | | | | | | | Verifies that failure paths related to errors in reading the LN9310_REG_LION_CTRL register are appropriately handled by the ln9310 driver. BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@chromium.org> Change-Id: Ib2f4b598c33b4a8557311bad406f96bff60d7c4b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3218365 Commit-Queue: Aaron Massey <aaronmassey@google.com> Tested-by: Aaron Massey <aaronmassey@google.com> Reviewed-by: Yuval Peress <peress@google.com> Reviewed-by: Wai-Hong Tam <waihong@google.com>
* zephyr: test: ln9310 bad battery register read failure path testAaron Massey2021-10-271-2/+41
| | | | | | | | | | | | | | | | Tests paths when the driver fails to read from the battery register. BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@chromium.org> Change-Id: I3ffd1002cc7402b2db10f253eff8ce6062140a63 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3218364 Commit-Queue: Aaron Massey <aaronmassey@google.com> Tested-by: Aaron Massey <aaronmassey@google.com> Reviewed-by: Yuval Peress <peress@google.com> Reviewed-by: Denis Brockus <dbrockus@chromium.org>
* zephyr: test: ln9310 fails to init and start with unknown batteryAaron Massey2021-10-271-0/+33
| | | | | | | | | | | | | | | | When the ln9310 cannot identify the battery it fails during initialization and does not power up after software_enable() BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@chromium.org> Change-Id: Ic4a4dff9c9832635019021b30b3818fa8cf8d1cb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3218363 Commit-Queue: Aaron Massey <aaronmassey@google.com> Tested-by: Aaron Massey <aaronmassey@google.com> Reviewed-by: Yuval Peress <peress@google.com>
* zephyr: emul: ln9310_emul_is_init verifies switching modes enabledAaron Massey2021-10-271-3/+9
| | | | | | | | | | | | | | | | | | Switching 21 and 31 modes are enabled for transition during ln9310 initialization and need to be checked by ln9310_is_init() emulator function. BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@chromium.org> Change-Id: Ibf190b813d43d236f162aa4f259b55ca99ac9437 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3218362 Commit-Queue: Aaron Massey <aaronmassey@google.com> Tested-by: Aaron Massey <aaronmassey@google.com> Reviewed-by: Yuval Peress <peress@google.com> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* zephyr: test: ln9310 test startup workaround by exceeding retriesAaron Massey2021-10-271-0/+53
| | | | | | | | | | | | | | | | | After a number of retries, ln9310_software_enable will give up attempting to start older versions of the ln9310 via cfly precharging. BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@chromium.org> Change-Id: I2f99e5940f456e9cb6303a71e91a033542aa8db3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3217810 Commit-Queue: Aaron Massey <aaronmassey@google.com> Tested-by: Aaron Massey <aaronmassey@google.com> Reviewed-by: Yuval Peress <peress@google.com> Reviewed-by: Sam Hurst <shurst@google.com>
* baseboard/kukui: Free up more space in kukui RO and RWTom Hughes2021-10-271-5/+9
| | | | | | | | | | | BRANCH=none BUG=b:172020503 TEST=CC=clang make BOARD=burnet Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I0cf7b1da3ad3e0546a7fb53c30721d04710a0947 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3245623 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
* board/dirinboz,board/gumboz: Fix variable typeTom Hughes2021-10-272-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When building with clang, it warns: board/dirinboz/led.c:47:6: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] IOEX_C1_CHARGER_LED_AMBER_DB); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ board/dirinboz/led.c:49:6: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] IOEX_C1_CHARGER_LED_WHITE_DB); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ The led variables are used as parameters to gpio_or_ioex_set_level, which takes an int, so just use int so we don't have to cast between types. BRANCH=none BUG=b:172020503 TEST=none Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I16428fbc5ef49f497a3514ac56049e8bd0e40d53 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243005 Reviewed-by: Diana Z <dzigterman@chromium.org>
* board/felwinter: Fix signal typeTom Hughes2021-10-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | When building with clang, it warns: board/felwinter/usbc_config.c:206:16: error: implicit conversion from enumeration type 'enum gpio_signal' to different enumeration type 'enum ioex_signal' [-Werror,-Wenum-conversion] rst_signal = GPIO_USB_C1_RT_RST_R_ODL; ~ ^~~~~~~~~~~~~~~~~~~~~~~~ When we are mixing gpio_signal and ioex_signal, we should be calling gpio_or_ioex_set_level, which will call gpio_set_level or ioex_set_level, depending on the signal type. BRANCH=none BUG=b:172020503 TEST=none Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: Id835a1a31d686bee128e0908d3916f36447f78ec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243006 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-by: YH Lin <yueherngl@chromium.org>
* board/metaknight: Fix compilation error when using clangTom Hughes2021-10-272-24/+15
| | | | | | | | | | | | | | | | | | | | | clang warns: board/metaknight/board.c:787:10: error: array index 1 is past the end of the array (which contains 1 element) [-Werror,-Warray-bounds] if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0)) ^ ~ board/metaknight/board.c:741:1: note: array 'tcpc_config' declared here const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { ^ BRANCH=none BUG=b:172020503 TEST=CC=clang make BOARD=metaknight Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I510d6ec4343f258d734834f2d1e3b6760fca7761 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3238248 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* core/minute-ia: Disable flag when using clangTom Hughes2021-10-271-1/+4
| | | | | | | | | | | | | "-mno-accumulate-outgoing-args" is not a flag that clang understands. BRANCH=ish BUG=b:172020503 TEST=none Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I897a491d7b7c91d21d8cfa1cfb9d8470c1240650 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3193274 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Cret: Add mfgacc_support for some batterieselmo_lan2021-10-271-0/+13
| | | | | | | | | | | | | | | | | TI support mfgacc_support. We will use mfgacc_support to detect dfet and cfet. BUG=b:204285159 BRANCH=dedede TEST=Test on Cret, can boot up from battery cutoff. Signed-off-by: elmo_lan <elmo_lan@compal.corp-partner.google.com> Change-Id: I0c6358176ded8756efa506db0a06285436ab3e46 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246885 Reviewed-by: Elthan Huang <elthan_huang@compal.corp-partner.google.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Elthan Huang <elthan_huang@compal.corp-partner.google.com> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
* zephyr: test: Refactor ln9310 test to avoid global state.Aaron Massey2021-10-271-9/+25
| | | | | | | | | | | | | | | To avoid usage of global state that has risk of not being reset, use locally stack allocated structs with data parameter provided by the current i2c mock functionality. BRANCH=none BUG=b:184856083 TEST=zmake configure --test zephyr/test/drivers Signed-off-by: Aaron Massey <aaronmassey@google.com> Change-Id: Iaa70d2ab42dd75bb8abab06e279a3bb4f8397588 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246295 Reviewed-by: Yuval Peress <peress@google.com>
* npcx: flash: Disable flash QE bit at initWealian Liao2021-10-271-31/+57
| | | | | | | | | | | | | | | | | | | In NPCX9 production devices, the flash status register’s quad enable bit (non-volatile) will be set by default. When the QE bit of Status Register-2 is set for Quad I/O, the WP# signal is not supported since this pin is used as IO2. This CL clears the QE bit at init to make sure WP# support is enabled. BRANCH=none BUG=none TEST=Set QE bit & reboot the ec. Check the QE bit is disabled. Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com> Change-Id: Ic07403f1f1ac0e7f3362ef94670608ee25d77f51 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246881 Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
* brya: fix prochot feature in AC onlyScott Chao2021-10-271-3/+2
| | | | | | | | | | | | | | | | In old version, we will return early in assert_prochot if no battery. Since we need to test under AC only as well, so add one judgment to let AC only work. BUG=b:198689488, b:198722634 BRANCH=none TEST=make -j BOARD=gimble Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com> Change-Id: I999bd9f8d4d55a8c0c2f43017c4235df2565e45d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243848 Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: caveh jalali <caveh@chromium.org>
* kingoftown: Swap left/right LEDTommy Chung2021-10-271-8/+8
| | | | | | | | | | | | | | | C0/C1 port is on left/right port respectively for kingoftown. Swap left/right LED to the correct port. BUG=b:202464175 BRANCH=trogdor TEST=make sure that "ectool led left/right auto/white/amber/off" correct. Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: I4f40ed76978b3b471a5c617d2dbf377146023c6b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3225270 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* kingoftown: Update led configTommy Chung2021-10-271-7/+41
| | | | | | | | | | | | | | | | | | | | | | LED policies for kingoftown are defined in the following BUG tracker. This CL is updated to meet the policies. BUG=b:202464175 BRANCH=trogdor TEST=make sure that C0/C1 LED behaviors correct when 1. DC mode 2. DC mode when system suspend 3. AC mode when charging 4. AC mode when fully charging 5. AC mode when fully charging and system suspend 6. AC mode when battery is not present 7. AC mode and force idle. Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: I8e0eb03ba209194f2b47d6d32f64b44d1be1af1b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3199437 Reviewed-by: Wai-Hong Tam <waihong@google.com> Reviewed-by: Devin Lu <Devin.Lu@quantatw.com>
* SERVO_V4P1: Use IO-Expander driver specific flagsSam Hurst2021-10-273-8/+13
| | | | | | | | | | | | | | | | | | The TCA64XXA driver controls both the tca6416a and tca6424a io-expanders, so the IO-Expander driver specific flags are used to distinguish between the two. BUG=b:203907721 BRANCH=none TEST=ServoV4p1 flags are not clobbered and IO-Expanders are working Signed-off-by: Sam Hurst <shurst@google.org> Change-Id: I89335845f035aa18d39762cda8ede732e99df3ee Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3239015 Tested-by: Sam Hurst <shurst@google.com> Commit-Queue: caveh jalali <caveh@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
* IOEX: Add driver specific flagsSam Hurst2021-10-271-0/+6
| | | | | | | | | | | | | | | | | Use the last 8-bits (bits 24 to 31) of the the io-expander flag variable for io-expander drivers that control multiple devices. BUG=b:203907721 BRANCH=none TEST=ServoV4p1 flags are not clobbered and IO-Expanders are working Signed-off-by: Sam Hurst <shurst@google.org> Change-Id: Ib966bc6645b32391d1f7dfe365ea3abc9cd02380 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246297 Tested-by: Sam Hurst <shurst@google.com> Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: caveh jalali <caveh@chromium.org>
* IOEX: Fix clobbering of initial flag valuesSam Hurst2021-10-271-1/+2
| | | | | | | | | | | | | | | | | Do not clobber initial io-expander flag values set in board files. BUG=b:203907721 BRANCH=none TEST=ServoV4p1 flags are not clobbered and IO-Expanders are working Signed-off-by: Sam Hurst <shurst@google.org> Change-Id: If5d899de5071d8a8e7594de10e2efd4dfb83e838 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3239014 Tested-by: Sam Hurst <shurst@google.com> Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-by: Brian J. Nemec <bnemec@chromium.org> Commit-Queue: Sam Hurst <shurst@google.com>
* Scout: disable ALS interrupt on known-bad hardwareJoe Tessler2021-10-272-7/+35
| | | | | | | | | | | | | | | | | | | Prototype, Pre-EVT, and EVT board versions incorrectly use a 1.8V interrupt line, which sends a constant interrupt signal (active low) and eventually triggers a watchdog reset. This change ensures the interrupt remains disables for those known-bad board revision. BUG=b:203224828 TEST=Flash on EVT hardware; confirm no boot loop BRANCH=puff Signed-off-by: Joe Tessler <jrt@chromium.org> Change-Id: Ib959c197219b87024ef8fe2e01350b155ab95f44 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3246412 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Felwinter: modify FW_config for MB typeLeo-Tsai2021-10-265-11/+49
| | | | | | | | | | | | | | add fw config settings for mb type to switch USB4/3 TBT support or not BUG=b:198122468 BRANCH=none TEST=build make -j BOARD=Felwinter pass Signed-off-by: Leo-Tsai <leocx_tsai@compal.corp-partner.google.com> Change-Id: Ib22a36dc39fd385d8014016d0282740ffa649367 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3229058 Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: Boris Mittelberg <bmbm@google.com>
* zephyr: test: Allow usbc tasks to be safely suspended by unit testsAaron Massey2021-10-261-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | The usb_mux test has potential race conditions when running concurrently with the usbc power delivery tasks. A partial-fix was applied in CL:3213616 by suspending the pd tasks, but this presented a possible deadlock when tasks were suspended while holding a lock necessary for the usb_mux test. This change makes use of the pd_set_suspend function to safely suspend the usbc PD tasks safely. Due to pd_set_suspend function's use of sleeps this change may be adapted further given b:201420132 to avoid sleeps in zephyr tests. BRANCH=none BUG=b:203203231 TEST=1) zmake configure --test zephyr/tests/drivers 2) Repition of 1) while arbitrarily manipulating task scheduling using sleeps. Signed-off-by: Aaron Massey <aaronmassey@google.com> Change-Id: I61ce93b0c204724c45b6a5345d13ac5782628517 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3245453 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Yuval Peress <peress@google.com>
* kukui: Remove CMD_ACCELS to create spaceDaisuke Nojiri2021-10-261-1/+1
| | | | | | | | | | | BUG=None BRANCH=None TEST=buildall Change-Id: I69b2b5d7fc81852213661a7cb2d34d7c8cffe08f Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3229463 Reviewed-by: Eric Yilun Lin <yllin@google.com>
* Trogdor: Switch from battery v1 to v2Daisuke Nojiri2021-10-261-0/+3
| | | | | | | | | | | | | | Battery v2 supports full size strings for static info including manufacturer, model, chemistry. BUG=b:198722643 BRANCH=None TEST=buildall Change-Id: I7dc768eb5670bc89bc4f72a1bba3530f3f1753cf Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3227373 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* smart_battery: Store battery info in struct battery_static_infoDaisuke Nojiri2021-10-264-26/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, static battery info is stored in a host command response struct (e.g. ec_response_battery_static_info_v1). It can contain only up to 8 (v0) or 12 (v1) byte strings. This patch adds struct battery_static_info, which has the full size string fields to store static battery info. This will make a host using virtual_battery.c see full size strings under /sysfs/power_supply/sbs-*. ACPI and host programs speaking EC_CMD_BATTERY_GET_STATIC will not be affected. BUG=b:198722643, b:203031618 BRANCH=None TEST=Coachz. Run ectool battery. TEST=Run cat /sys/class/power_supply/sbs-12-000b/manufacturer and and verify the string is longer than 8 chars. Change-Id: Id847d66c7c846885113f6afb05a9de1788bf92ae Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3180272 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Battery: Move battery code to battery_v1.c and v2.cDaisuke Nojiri2021-10-2612-533/+661
| | | | | | | | | | | | BUG=b:198722643, b:203031618 BRANCH=None TEST=buildall Change-Id: I595da56412f4d30684b00d1138f7e2339c7f5204 Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3227372 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
* TCPMv2: Add PD timer unit testDenis Brockus2021-10-267-3/+247
| | | | | | | | | | | | | | | | | | | Basic checks to verify setting/clearing bits for all of the currently allocated PD timers works properly BUG=b:141363146 BRANCH=none TEST=make run-usb_pd_timer Signed-off-by: Denis Brockus <dbrockus@google.com> Change-Id: I22e237d367a3b3cb28c4a9d88d6c5c375f3b44cf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3176394 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Yuval Peress <peress@google.com> Commit-Queue: Denis Brockus <dbrockus@chromium.org> Auto-Submit: Denis Brockus <dbrockus@chromium.org>
* TCPMv2: Support 64 timersAbe Levkoy2021-10-263-18/+81
| | | | | | | | | | | | | | | | | Use arrays of 32-bit fields to store PD timer status for each port. Provide a mechanism to perform atomic operations on the appropriate fields for each timer. BUG=b:141363146 TEST=make run-usb_pe_drp BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I23bb4aa9df569cec7088f5b9e451e86372eaabb7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3171334 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
* zephyr: drivers: add TCPCI usb mux testsTomasz Michalec2021-10-263-3/+234
| | | | | | | | | | | | | | | | Functions from driver/tcpm/tcpci.c that are part of usb mux driver API are tesetd by this patch. BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I0271170e43008f9994d8500b3bd122e5f0cecad2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3211974 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* zephyr: drivers: add not TCPM driver unit testsTomasz Michalec2021-10-261-1/+46
| | | | | | | | | | | | | | | | | | Add test for functions that are in driver/tcpm/tcpci.c but are not part of TCPM driver API. Tested functions are: - tcpci_tcpc_debug_accessory() - tcpc_xfer() BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I385d7ba3d7fe6e575b8d75b2315b02092a7a4d71 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3211973 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Wai-Hong Tam <waihong@google.com>
* zephyr: drivers: add TCPCI vbus discharge testTomasz Michalec2021-10-262-3/+24
| | | | | | | | | | | | | | | | | | | | Function tcpci_tcpc_discharge_vbus() is guarded by #ifdef CONFIG_USB_PD_DISCHARGE_TCPC in tcpci.h. This patch removes ifdef guarda and test of tcpci_tcpc_discharge_vbus() in tcpci test suite. BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers TEST=make runhosttests TEST=make buildall Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: Ib0e2c3e36a4b56c67fb6b13e40ee11226a5dae47 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3211972 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* zephyr: drivers: add TCPCI missing tcpm_drv testsTomasz Michalec2021-10-261-1/+221
| | | | | | | | | | | | | | | | | | | | | | This patch adds missing unit tests for following functions from tcpci_tcpm_drv: - tcpci_tcpc_enable_auto_discharge_disconnect() - tcpci_tcpc_drp_toggle() - tcpci_get_chip_info() - tcpci_enter_low_power_mode() - tcpci_set_bist_test_mode() BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: Ia15b66c8dd5e9019661ff92228d5017e451a43e2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3220339 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Aaron Massey <aaronmassey@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com>
* zephyr: drivers: add TCPCI alert related testsTomasz Michalec2021-10-261-1/+188
| | | | | | | | | | | | | | | | This patch adds unit tests for tcpci_tcpc_alert() function from driver/tcpm/tcpci.c BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I33726ca43bc94588f12467c109cb6b8cc3572d6b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3220338 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Yuval Peress <peress@google.com>
* zephyr: drivers: add TCPCI messages related testsTomasz Michalec2021-10-261-1/+291
| | | | | | | | | | | | | | | | This patch adds unit tests for driver/tcpm/tcpci.c functions that are related to sending and receiving SOP messages. BUG=b:184857030 BRANCH=none TEST=make configure --test zephyr/test/drivers Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I5f839c9c1c5e0c2f37c7ef9c6ba91ab06b1de21d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3220337 Reviewed-by: Sam Hurst <shurst@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com>
* common/acpi: Disable clang warningTom Hughes2021-10-261-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | When building with clang, it warns: common/acpi.c:138:11: error: result of comparison of constant 256 with expression of type 'uint8_t' (aka 'unsigned char') is always false [-Werror,-Wtautological-constant-out-of-range-compare] addr >= EC_ACPI_MEM_MAPPED_BEGIN + EC_ACPI_MEM_MAPPED_SIZE) { ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It doesn't hurt to leave the check as-is. The values of EC_ACPI_MEM_MAPPED_BEGIN + EC_ACPI_MEM_MAPPED_SIZE may not be greater than or equal to 255 on every board. BRANCH=none BUG=b:172020503 TEST=CC=clang make BOARD=voema TEST=make buildall -j Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: Ibb27421957e99f2f636331fbaa51dab6fa768744 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243009 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* board/dalboz: Use correct enum typeTom Hughes2021-10-262-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | When building with clang, it warns: board/dalboz/board.c:178:43: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] enum gpio_signal IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT1; ~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~ board/dalboz/board.c:179:47: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] enum gpio_signal IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BRANCH=none BUG=b:172020503 TEST=make buildall -j Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I1a90a0814d850406de797077eabc7ba1a4356974 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243004 Reviewed-by: Edward Hill <ecgh@chromium.org>
* zephyr: remove option to use printkDawid Niedzwiecki2021-10-263-21/+1
| | | | | | | | | | | | | | | | | CONFIG_PLATFORM_EC_CONSOLE_USES_PRINTK was used by riscv boards to avoid HARD_RESET during PD negotiation. Once, it is fixed, the option can be removed. BUG=b:193585176 TEST=zmake testall BRANCH=main Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com> Change-Id: I665534c569c71cdf2bb17e9657929dea53351ad5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3229267 Tested-by: Dawid Niedzwiecki <dawidn@google.com> Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Dawid Niedzwiecki <dawidn@google.com>
* chip/mt_scp: disable uart irq in S3 stateTinghan Shen2021-10-263-2/+32
| | | | | | | | | | | | | | | | | | | According to the latched PC/LR in a S3 watchdog timeout case, SCP is handling UART IRQ when watchdog timeout. Before find out the reason of triggering UART IRQ, disable UART IRQ in S3 state to prevent handling it. UART IRQ is enabled when resumed. BRANCH=None BUG=b:199444513 TEST=SR test >4000 times on 5 devices. Change-Id: I06a4c31ecb9a82978bee8deb04315a11778253f0 Signed-off-by: Tinghan Shen <tinghan.shen@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3235729 Tested-by: TingHan Shen <tinghan.shen@mediatek.corp-partner.google.com> Reviewed-by: Tzung-Bi Shih <tzungbi@chromium.org> Commit-Queue: Tzung-Bi Shih <tzungbi@chromium.org>
* gimble: add FW_CONFIG support for different keyboard layoutWill Tsai2021-10-263-2/+30
| | | | | | | | | | | | | | | | Also refer to https://chrome-internal.googlesource.com/chromeos/project /brya/gimble/+/refs/heads/main/config.star#19 for the bit assignments. BUG=b:193395012 BRANCH=none TEST=make -j BOARD=gimble Signed-off-by: Will Tsai <will_tsai@wistron.corp-partner.google.com> Change-Id: I6558028190d94559b89533fb02bcc475a4ed6475 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3233470 Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-by: YH Lin <yueherngl@chromium.org> Commit-Queue: Boris Mittelberg <bmbm@google.com>
* Zephyr: Implement a generic battery led SMParth Malkan2021-10-264-53/+378
| | | | | | | | | | | | | | | | | Implement a generic battery led state machine for gpio led using device tree. Currently this is implemented for lazor device as a first step. It would be eventually converted to a standalone driver. This will be applicable across all boards removing the need to have led.c implementation for each board. BRANCH=none BUG=b:201007290 TEST=compared logs to verify the color value in each state Signed-off-by: Parth Malkan <parthmalkan@google.com> Change-Id: I571937457f9eb41d5949ffb8d1382d89ee118ba8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3180480 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* quackingstick: ps8805 A3 chip Device IDSue Chen2021-10-261-0/+1
| | | | | | | | | | | | | | | | Adding CONFIG_USB_PD_TCPM_PS8805_FORCE_DID to include ps8805_make_device_id function in for depthcharge to recognize ps8805 A3 chip. BUG=none BRANCH=trogdor TEST="ectool pdchipinfo 0" can get correct device_id 2 for ps8805 A3 chip. Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Change-Id: Iaef08ec859893232e4e573c0364b78e10f6cfb2f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3238424 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* Scout: Change the setting of the GPIOs connected to ALSSue Chen2021-10-261-13/+13
| | | | | | | | | | | | | | | SCL/DAT change to 1.8V EC_RGB_INT_L change to 3.3V BUG=b:203224828 BRANCH=puff TEST="watch -n 1 ectool motionsense" can read als data Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Change-Id: Iaf0d439d572f16d242123ca73883f417284db4b2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3236387 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Joe Tessler <jrt@chromium.org>