| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the interest of making long-term branch maintenance incur as little
technical debt on us as possible, we should not maintain any files on
the branch we are not actually using.
This has the added effect of making it extremely clear when merging CLs
from the main branch when changes have the possibility to affect us.
The follow-on CL adds a convenience script to actually pull updates from
the main branch and generate a CL for the update.
BUG=b:204206272
BRANCH=ish
TEST=make BOARD=arcada_ish && make BOARD=drallion_ish
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This header file is used from quite a few files, relying on the EC
build system to find includes in the driver/tcpm directory. For Zephyr
we don't want to add that as an include.
It makes more sense for header files to be in an include directory, so
move it and fix up the users.
BUG=b:175434113
BRANCH=none
TEST=build Zephyr and ECOS on volteer
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I5851914b1a7d3fdc1ba911c0fbe9046afbaf6f5d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2597985
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove as many #if preprocessor statements as possible
without allowing the code to grow when it is compiled.
Verified against the sizes built on current ToT and
this CL on that ToT
~/trunk/src/platform/ec $ make newsizes
Compared 699 of 699 files.
File sizes are unchanged.
BUG=b:172208011
BRANCH=none
TEST=verify TCPMv2 functionality
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: Ib7d6a41b418f0683d3f7a14236b377073f346010
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2515279
Tested-by: Denis Brockus <dbrockus@chromium.org>
Auto-Submit: Denis Brockus <dbrockus@chromium.org>
Commit-Queue: Jett Rink <jettrink@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After CL:2208221, the check for the PD_CMD task no longer trigger,
so we end up not calling suspend on our TCPC ports.
We want to continue to suspend, which will apply CC open in
TCPMv2 for a cooperative shutdown
Also, correct override keyword usage for board_get_usb_pd_port_count
since I had to touch those definitions to make IS_ENABLE work
BRANCH=none
BUG=b:160243292
TEST=See that software sync reboot, applies CC open (and browns out system)
Change-Id: I00bf08c7d347441d77834e2c5122a09ca2316280
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2276318
Reviewed-by: Diana Z <dzigterman@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
BRANCH=none
BUG=none
TEST=builds
Signed-off-by: Jett Rink <jettrink@chromium.org>
Change-Id: I2beaa8b74b313d225b9166f324d2b44cb0aa59ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2276317
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the same prefix for all debug statements, namely C#:
BRANCH=none
BUG=none
TEST=build
Signed-off-by: Jett Rink <jettrink@chromium.org>
Change-Id: Iaa1524dfc1f8a9136259b6193b99e8d2229925f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2276316
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding update_cc mechanism to keep correct Rp set
BUG=b:158291622
BRANCH=none
TEST=check Rp value over attach, hard reset and pr-swap
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: I369c71e637cbb6a8fc37b434194ce39cc9bf5417
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2232830
Tested-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Auto-Submit: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some Type-C states are connected states, like TC_DBG_ACC_SNK, but have
not been put into the conditions. This resulted the TCPC not ack and
receive any PD message; so failed to do any PD negotiation.
BRANCH=None
BUG=b:152650710
TEST=Connected Trogdor to Servo v4 with dts-mode enabled. They
negotiated to 20V.
Change-Id: I04bb5dc62721963c0fc3ea4aae9446c55ea6ae5e
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2128689
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If PD is not in a connected state, the previous approach was to enable
PD comm on TX Phy reset and then disable it later (the SM_RUN case in
prl_run()). In this short period of time, the TCPC wil respond GoodCRC
to the PD message and the PD partner will go forward to the next state
that messes up its state machine and causes an unexpected hard reset.
We should not enable PD comm if not in a connected state.
BRANCH=None
BUG=b:151159750
TEST=Tested on Trogdor, with extra patches to fix the DP discovery
and separate the Tx and Rx buffers. Unplugged battery and plugged
a 20V charger and verified it boot fine, no reboot loop.
TEST=Built chocodile_vpdmcu image successfully.
TEST=make runtests -j
Change-Id: Ic819787f1ec0085abdded3bab8ecbcb813495408
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2107882
Reviewed-by: Sam Hurst <shurst@google.com>
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=b:148528713
BRANCH=none
TEST=make buildall -j
Change-Id: Idf6908bfc3e79a960a7de6e4249c2f50b41b56e6
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2052645
Reviewed-by: Diana Z <dzigterman@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the tc versions were doing the same thing as the pd version
so removed the duplication
BUG=b:147290482,b:147314832
BRANCH=none
TEST=make buildall -j
Signed-off-by: Denis Brockus <dbrockus@chromium.org>
Change-Id: Iaa48dcd65e3a6c325b0ae2cca33e629fec6e33c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1993861
Reviewed-by: Edward Hill <ecgh@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Share single copy of PPC overcurrent functions between TCPMv1 and TCPMv2.
BUG=none
BRANCH=none
TEST=build
Change-Id: I70e25e8580f6bbfebe6269552cd186f3bb981ede
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1954305
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit bec03d91bc9f954682c02d122a0500d10cc102c2.
Reason for revert: Some TCPC's bugs will generate an attach event when
nothing is connected, triggering the state machine to enter an attached
state. Example output with nothing connected to the port:
2019-10-28 10:23:20 [0.044393 C1: Unattached.SNK]
2019-10-28 10:23:20 [0.101264 p1: PPC init'd.]
2019-10-28 10:23:20 [0.106488 C1: Unattached.SRC]
2019-10-28 10:23:20 [0.116072 C1: AttachWait.SRC]
2019-10-28 10:23:20 [0.220006 C1: Attached.SRC]
TOT has basic TypeC/PD functionality but issues still exist that will be
fixed in subsequent CLs.
Original change's description:
> usbc: remove unnecessary tcpc CC reads
>
> We only need to read the CC pins when the CC evt is fired otherwise the
> CC pins should have the same value. It is actually incorrect/undesirable
> that our old PD stack queried the tpcp cc driver over i2c so frequently
> for the CC pins status.
>
> Also single source code that interprets the CC lines values into a UFP
> or DFP state.
>
> Lastly, remove extraneous timers for cc debouncing, we only need one.
>
> BRANCH=none
> BUG=none
> TEST=builds
>
> Change-Id: I65baa2e6fb92d7ab5ca12daa76225cd13b9ab974
> Signed-off-by: Jett Rink <jettrink@chromium.org>
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825504
> Reviewed-by: Denis Brockus <dbrockus@chromium.org>
> Reviewed-by: Sam Hurst <shurst@google.com>
> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Bug: none
Change-Id: Ie9bd366dd85df9a33934e06e4208543f6e7aaa9b
Signed-off-by: Sam Hurst <shurst@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1900058
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Certain SKUs of certain boards have lesser number of USB PD ports than
defined by CONFIG_USB_PD_PORT_COUNT. Hence rename
CONFIG_USB_PD_PORT_COUNT as CONFIG_USB_PD_PORT_MAX_COUNT.
BUG=b:140816510, b:143196487
BRANCH=octopus
TEST=make -j buildall; Boot to ChromeOS
Change-Id: I7c33b27150730a1a3b5813b7b4a72fd24ab73c6a
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1879337
Tested-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Commit-Queue: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PD header specifies the power role for SOP packets and cable plug for
SOP' and SOP" packets. Refactor code to make this more obvious.
BRANCH=none
BUG=none
TEST=builds and new stack runs on hatch
Change-Id: I6cdb1561082d2142214ac65703ff42586b16d70b
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1865986
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use first class enums types instead of int for power and data
role.
BRANCH=none
BUG=none
TEST=builds and new stack works with single charger on C1 hatch
Change-Id: Ied4562e6a148803140cf277bd229b6c3ed801470
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1865985
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Edward Hill <ecgh@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just a simple rename. run_state() seems more readable to me,
and "run" is used in many of the related functions and comments.
exe_state used to be called sm_run_state_machine before the great
refactoring of CL:1733744.
BRANCH=none
BUG=none
TEST=build
Change-Id: I5fe9e5b98042d7a5b9b9e9bde48ebecbda420458
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1848970
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify the pd_task loop timeout by making it a fixed 5 milliseconds.
If there is nothing to do then it shouldn't take long to realize this.
This allows removal of evt_timeout, tc_set_timeout, tc_get_timeout.
BRANCH=none
BUG=none
TEST=usbc unit tests (make -j runhosttests)
Change-Id: I067309b191e5118fbe9e89a92a650fa837fb75fa
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1857216
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only need to read the CC pins when the CC evt is fired otherwise the
CC pins should have the same value. It is actually incorrect/undesirable
that our old PD stack queried the tpcp cc driver over i2c so frequently
for the CC pins status.
Also single source code that interprets the CC lines values into a UFP
or DFP state.
Lastly, remove extraneous timers for cc debouncing, we only need one.
BRANCH=none
BUG=none
TEST=builds
Change-Id: I65baa2e6fb92d7ab5ca12daa76225cd13b9ab974
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825504
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Sam Hurst <shurst@google.com>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EC command interface created a separate copy of the enum
pd_cc_state. Remove the EC command version and move the pd_cc_state
definition to the command interface.
Also remove PD_CC_NO_UFP option as there is no difference between that
value and PD_CC_NONE.
Split PD_CC_DEBUG_ACC into separate UFP and DFP values for clarity.
BRANCH=none
BUG=none
TEST=builds
Change-Id: Ic8c4c5ac4dd340b1e605100e35acb147c226a455
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825503
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Sam Hurst <shurst@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to ensure that our usb state machines
- do not have any cycles
- do not have any completely empty states
- have names for every print statement if called
These new unit tests allow us to have build-times checks for the above.
BRANCH=none
BUG=none
TEST=tests pass. Made each test fail locally to ensure that tests were
actually working.
Change-Id: Idd2c4d69e83cf38c97278edd1727d86b52a85db9
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1744657
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- OBJ is renamed to context (CTX) for current and last state
- State definition now includes its parent (no need for the boiler
plate function that takes in a signal)
- The init_state, set_state, and exe_state have been re-written to take
advantages of new state machine definition. I had to add more logic to
handle hierarchical states fully.
- Explicitly create the USB states at the bottom of the file with all
of the statics. Don't need to use macros (even though I did suggest them)
- Use NULL when we do_nothing instead of calling into a function
- Created a "private" enum in the C file that lists all of the states
in the file, that we can use to refer to a state (it is also the
index into the states array for that state).
- Changed prototype of state function to return void, since we aren't
really using the return value and it cleans up a lot of return 0 that
aren't needed.
- Add const to int port since we can and should
- Moves struct definition to implementation file only to keep
implementation details private. We can access data through accessor if
needed.
BRANCH=none
BUG=none
TEST=all unit tests passes
Change-Id: I482a63e08f7d63022d5102b891a2fac0b0faa46f
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1733744
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we transition to a new state in exit, then the
original state we are transitioning to is lost. The
new state machine common code will warn in this scenario.
BRANCH=none
BUG=none
TEST=builds
Change-Id: I571ff62dd6969bd3743cf33ae5c56dc02ae59724
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1733742
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
Implements DRP with Accessory, and Try.SRC as detailed in Release
1.4 of the USB Type-C specification.
BUG=b:130895206
BRANCH=none
TEST=manual
Used Atlas device to verify that it could be charged from PD and
none PD charges at 5V/3A. Attached USB dock and verifed access
to USB Thumb drive.
Performed same tests on Hatch
Port 0 on Hatch was used to run this CL, merged with PD functionality,
on the PD2.0 Compliance tester. All tests pass except for a few
physical layer tests. The test report has been added to the bug.
Change-Id: Ic4869e20e5b4c2ba6c827d92e40c70f3140f2518
Signed-off-by: Sam Hurst <shurst@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1574667
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Sam Hurst <shurst@google.com>
Commit-Queue: Sam Hurst <shurst@google.com>
|