summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Hurst <shurst@google.com>2022-01-24 17:41:53 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-26 23:01:54 +0000
commitc20313cc2621eebd75ed0fb3e8c3d73153e43f71 (patch)
treedcfaf905653fe6bb202658a7cbd4ab902364db77
parent01f25cc4647133e165c1f67f1ce7cfd8cdfcc38e (diff)
downloadchrome-ec-c20313cc2621eebd75ed0fb3e8c3d73153e43f71.tar.gz
zephyr: docs: add USBC documentation
Add documentation for configuring USBC. BUG=b:208437225 TEST=Browse doc in gerrit BRANCH=main Signed-off-by: Sam Hurst <shurst@google.com> Change-Id: Ibb4a25bb76673b29600a8d4e405792604d67e702 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3440847 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--docs/ec_terms.md10
-rw-r--r--docs/images/usbc_block_diagram.pngbin0 -> 50933 bytes
-rw-r--r--docs/zephyr/zephyr_usbc.md67
3 files changed, 77 insertions, 0 deletions
diff --git a/docs/ec_terms.md b/docs/ec_terms.md
index b865df0078..0349218e98 100644
--- a/docs/ec_terms.md
+++ b/docs/ec_terms.md
@@ -186,6 +186,12 @@
typical application is to control fan speeds or the brightness of a
backlight.
+* **Retimer** {#retimer}
+
+ A device that can extract the embedded clock signal from a high-speed
+ protocol, fully recover the data, and retransmit a fresh copy of the data
+ using a clean clock.
+
* **SAFT - Semi-Automated Firmware Tests** {#saft}
A suite of tests for firmware, succeeded by [FAFT](#faft). See the
@@ -220,6 +226,10 @@
The specific contents of a SPI frame varies based on the SPI peripheral
type.
+* **SSMUX - Super Speed Multiplexer** {#ssmux}
+
+ See the [USB-C documentation](./usb-c.md#ssmux) for more details.
+
* **SVDM - Structured Vendor Defined Messages** {#svdm}
See the [USB-C documentation](./usb-c.md#svdm) for more details.
diff --git a/docs/images/usbc_block_diagram.png b/docs/images/usbc_block_diagram.png
new file mode 100644
index 0000000000..9c05c69f3c
--- /dev/null
+++ b/docs/images/usbc_block_diagram.png
Binary files differ
diff --git a/docs/zephyr/zephyr_usbc.md b/docs/zephyr/zephyr_usbc.md
new file mode 100644
index 0000000000..2d1f337261
--- /dev/null
+++ b/docs/zephyr/zephyr_usbc.md
@@ -0,0 +1,67 @@
+# Zephyr EC USBC Configuration
+
+[TOC]
+
+## Overview
+
+[USB-C] is a flexible connector supporting multiple data rates, protocols, and
+power in either direction.
+
+From the system, USB PD requires a complex state machine as USB PD can
+operate in many different modes. This includes but isn't limited to:
+
+* Negotiated power contracts. Either side of the cable can source or sink
+ power up to 240W (if supported by device).
+* Reversed cable mode. This requires a mux to switch the signals before
+ getting to the SoC (or AP).
+* Debug accessory mode, e.g. [Case Closed Debugging (CCD)]
+* Multiple uses for the 4 differential pair signals including
+ * USB SuperSpeed mode (up to 4 lanes for USB data)
+ * DisplayPort Alternate Mode (up to 4 lanes for DisplayPort data)
+ * Dock Mode (2 lanes for USB data, and 2 lanes for DisplayPort)
+ * USB4/Thunderbolt mode. (4 lanes for USB data)
+
+For a more complete list of USB-C Power Delivery features, see the
+[USB-C PD spec][USB PD Spec Id].
+
+The image below shows a block diagram of a typical [USB-C] setup.
+
+![USBC Block Diagram]
+# Legend
+## See the [EC Acronyms and Technologies]
+* [AP]
+* [EC]
+* [PPC]
+* [TCPC]
+* [USB-C Mux]
+* [Retimer]
+
+## Kconfig Options
+
+The `CONFIG_PLATFORM_EC_USBC` option enables USB-C support on the Chromebook.
+See [Kconfig.usbc] for sub-options related to this feature.
+
+The following sub-components must be configured for correct operation of USB-C:
+* [Zephyr EC Type-C Port Controller]
+* [Zephyr EC PPC Configuration]
+* [Zephyr EC SS Mux and Retimer Configuration]
+* [Zephyr EC Charger Configuration]
+* [Zephyr EC Power Delivery Configuration]
+
+[USB-C]:../usb-c.md
+[EC Acronyms and Technologies]:../ec_terms.md
+[AP]:../ec_terms.md#ap
+[EC]:../ec_terms.md#ec
+[PPC]:../ec_terms.md#ppc
+[TCPC]:../ec_terms.md#tcpc
+[USB-C Mux]:../ec_terms.md#ssmux
+[Retimer]:../ec_terms.md#retimer
+[USBC Block Diagram]:../images/usbc_block_diagram.png
+[USB PD Spec Id]: https://www.usb.org/document-library/usb-power-delivery
+[Kconfig.usbc]:
+https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/Kconfig.usbc
+[Zephyr EC Power Delivery Configuration]:zephyr_pd.md
+[Zephyr EC PPC Configuration]:zephyr_ppc.md
+[Zephyr EC SS Mux and Retimer Configuration]:zephyr_usbc_ss_mux_and_retimer.md
+[Zephyr EC Charger Configuration]:zephyr_charger.md
+[Zephyr EC Type-C Port Controller]:zephyr_tcpc.md