| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that the BB retimer has its own HPD interface, add this interface to
every board using the bb_usb_retimer driver.
BRANCH=None
BUG=b:195773400
TEST=on voxel, pass tast typec.Mode*.manual
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: Ia70d139431739e8f2c0577359cb3aaa7fb906d0a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3163930
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the drivers are now taking a mux_state_t set of flags to update,
go ahead and unify the usb_mux API this way as well. It makes the
parameters more apparent than the 1/0 inputs, and aligns the stack to
use the same parameters.
BRANCH=None
BUG=b:172222942
TEST=make -j buildall
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: Ie943dbdf03818d8497c0e328adf2b9794585d96e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3095438
Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added one field to struct usb_mux_driver, which returns true if
retimer update is supported.
Moved query function from usb_retimer_fw_update.c to usb_mux.c.
BUG=b:162528867
BRANCH=none
TEST=Tested on Voxel, together with related coreboot and kernel changes.
EC returns correct port information to kernel.
Signed-off-by: li feng <li1.feng@intel.com>
Change-Id: I5cab34a14adbf0470cffe6a13234ad53b6f6a90c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2651866
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support AP to update firmware during boot up, one byte EC RAM is
allocated for AP <-> EC communication. AP queries PD port/requests EC
to perform operations via EC_CMD_ACPI_WRITE; and fetches result from EC
via EC_CMD_ACPI_READ.
The flow is:
1. AP queries EC PD ports which port supports retimer firmware update.
2. AP queries current MUX.
3. a) If no device attached, AP requests EC to suspend PD task of the
port. Then AP requests EC to set MUX to USB mode,
Safe mode, TBT mode. After entering TBT mode, the OS can either
enumerate the retimers or do firmware update on the enumerated
retimers. Once done, AP requests EC to disconnect MUX and resume PD
task.
3. b) If device attached, AP moves on as usual. Retimer firmware update
is not performed.
BUG=b:162528867
BRANCH=none
TEST=Tested NDA case on Voxel board, together with coreboot and kernel
changes. Coreboot changes are merged. Kernel patches list is:
https://chromium-review.googlesource.com/c/chromiumos/
third_party/kernel/+/2670719
After power up, host scans retimers, in sysfs
localhost ~ # ls /sys/bus/thunderbolt/devices/
0-0 0-0:1.1 0-0:3.1 domain0
On PD port 1, manually update retimer firmware. Copy firmware to
nvm_non_active1/nvmem, then authenticate it. Host starts flow to update
firmware.
After it's done, PD port 1 resumes. Hotplug DP dongle/TBT device, devices
should function fully.
TEST=Tested DA cases on Voxel board, together with coreboot and kernel
changes. USB4/TBT devices function as usual.
Signed-off-by: li feng <li1.feng@intel.com>
Change-Id: Ie976e75f892d5caf48a948598a058a4f42e07eb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2594492
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support to C1, assign the gpio to put the PPC in FRS mode and add
the config options.
Volteer boards need the SYV682B rework to support FRS, but this will not
break existing boards. FRS will be enabled but fail, and enter
ErrorRecovery, enter Unattached.SNK, or successfully FRS depending on
the situation.
Volteer HW can supply 3A per port, so changes to reserve the FRS current
aren't needed to enable it on Volteer.
BUG=b:148144711
TEST=Check that FRS is functional. FRS devices should not re-enumerate
after adapter power is removed. Test with the SYV682B and using both the
PS8815 and RT1715 TCPCs.
BRANCH=none
Change-Id: I7a599f1c350529d910a331f1ebc78ab41ff44a24
Signed-off-by: Eric Herrmann <eherrmann@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2057495
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move this information into a file that can be built by Zephyr, so that
it can enable USB-A charging.
Note: This is not related to USB-C. Should we create a charger.c file
in board/volteer?
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Type 'usbchargemode 0 on' on volteer and see it start charging the phone
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I6658ebba1e473cafed2c8ae05e4013207f26ef3d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2631098
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a few functions needed by the USB4 Power Delivery features.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: Iaab8efe5d04617bb8641fb2939ddeeaa62dc2523
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2631097
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move this function over so we can use it from Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I31605b02803d54c0e75691f11ac57205b3600c01
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2617370
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move this init to usbc_config.c so that it can be used by Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Change-Id: I7cd506db300e9e2468e4efc5b203f7063f44385c
Cq-Depend: chromium:2618661
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2617369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move this function over so we can use it from Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: Id84781093ff518c29e1829dc3933cb1c31803995
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2617365
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Yuval Peress <peress@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for bringing this driver into Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Cq-Depend: chromium:2618537
Change-Id: I9f0432e33a0efb35ccf66a5befe2e5e0fdc789a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2617041
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move this out into the usbc_config file so that we can build for on
Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I992de3acd47beb6db61e1523eedb508b5f905e22
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2617364
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a separate public header for this chip so we can include it from
Zephyr. Update Volteer's usbc_config file to use that header, so it
builds on Zephyr.
BUG=b:175434113
BRANCH=none
TEST=make BOARD=volteer -j30
With a zephyr-chrome CL, build volteer on zephyr
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I45bb196a3c6de9bebefd3d06125d1cedd33666a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2615619
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
The Zephyr build needs this information but cannot use the whole
board.c file. It is pretty big anyway, so let's move some of the USB-C
config info into a separate file.
Add a header file for the part specific to this config.
We can progressively move more as Zephyr is able to build it. This
requires the addition of many Kconfig options, so will be done in
stages.
BUG=b:175434113
BRANCH=none
TEST=make -j30 buildall
With a zephyr-chrome CL, build volteer on zephyr
Check for other boards:
for b in $(grep volteer board/*/build.mk |awk -F/ '{print $2}'); do \
echo $b; grep -A5 "enum usbc_port" board/$b/board.h; done
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I2a4bb0af2b8571ce992cdbbc8362dec25176872e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2605277
Reviewed-by: Keith Short <keithshort@chromium.org>
|