summaryrefslogtreecommitdiff
path: root/board/volteer/usbc_config.c
Commit message (Collapse)AuthorAgeFilesLines
* BB Retimer: Add new HPD callback to boardsDiana Z2021-09-161-0/+1
| | | | | | | | | | | | | | | 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>
* USB MUX: Update mux HPD update interface to use mux_state_tDiana Z2021-09-161-1/+2
| | | | | | | | | | | | | | | | | 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>
* retimer: PD port retimer firmware update supportli feng2021-02-051-6/+0
| | | | | | | | | | | | | | | | 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>
* retimer: support retimer firmware updateli feng2021-02-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Volteer: Add support for FRS to C1Eric Herrmann2021-01-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* volteer: Move USB-A charging info to usbc_configSimon Glass2021-01-161-0/+8
| | | | | | | | | | | | | | | | | | | 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>
* volteer: Add USB4 PD support functionsSimon Glass2021-01-161-0/+41
| | | | | | | | | | | | | | | 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>
* volteer: Move ppc_get_alert_status() to usbc_configSimon Glass2021-01-131-0/+10
| | | | | | | | | | | | | | | 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>
* volteer: Move board_tcpc_init() out into usbc_configSimon Glass2021-01-121-0/+65
| | | | | | | | | | | | | | 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
* volteer: Move tcpc_get_alert_status() to usbc_configSimon Glass2021-01-121-0/+17
| | | | | | | | | | | | | | | | 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>
* zephyr: Allow building Intel Burnside BridgeSimon Glass2021-01-111-2/+0
| | | | | | | | | | | | | | 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
* volteer: Split out usb mux configSimon Glass2021-01-111-0/+38
| | | | | | | | | | | | | | | | 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>
* Create a public header for pi3usb9201Simon Glass2021-01-091-0/+15
| | | | | | | | | | | | | | | | | 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>
* Split out some USB-C config into new filesSimon Glass2021-01-091-0/+193
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>