summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Short <keithshort@chromium.org>2019-08-06 15:21:13 -0600
committerCommit Bot <commit-bot@chromium.org>2019-08-09 17:14:00 +0000
commit278bbbd7a7ce365b7500d0c97e24ffdc4a1c48dc (patch)
tree99de501390f3002cff6ea8a241be7fbab152eed5
parentcda525c29d54303c5320cc393a00035a1d21c8c5 (diff)
downloadchrome-ec-278bbbd7a7ce365b7500d0c97e24ffdc4a1c48dc.tar.gz
doc: Add documentation for EC terms
Add documentation for acronyms and technologies used in the EC codebase. BRANCH=none BUG=none TEST=run md_browser.py against changes Change-Id: I2ccc6e7c0c60144ded2e7b8cc171fa2a2897d006 Signed-off-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1740080 Reviewed-by: Edward Hill <ecgh@chromium.org>
-rw-r--r--docs/ec_terms.md159
-rw-r--r--docs/sitemap.md1
-rw-r--r--docs/usb-c.md8
3 files changed, 164 insertions, 4 deletions
diff --git a/docs/ec_terms.md b/docs/ec_terms.md
new file mode 100644
index 0000000000..9f8c220c2d
--- /dev/null
+++ b/docs/ec_terms.md
@@ -0,0 +1,159 @@
+# EC Acronyms and Technologies
+
+## Glossary
+
+* **ACCEL - Accelerometer**<a name="accel"></a>
+
+ A sensor that measures acceleration, typically over 3-axis. Nominally
+ provides information about the orientation of a device. On Chromebook 2-in-1
+ devices, there is an accelerometer in the base and one in the lid. Combining
+ the measurements from both accelerometers allows for a precise calculation
+ of the lid angle, used to switch between tablet and laptop mode.
+
+* **ACCELGYRO - Accelerometer/Gyroscope**<a name="accelgyro"></a>
+
+ A combination [accelerometer](#accel) and [gyroscope](#gyro) sensor that
+ provides more precise orientation information by measuring both linear and
+ rotational motion.
+
+* **ADC - Analog to Digital Converter**<a name="adc"></a>
+
+ A sensor that converts an analog voltage to a digital reading.
+
+* **ALS - Ambient Light Sensor**<a name="als"></a>
+
+ A sensor that measures the ambient light present. Used to automatically
+ control the screen and keyboard backlight level.
+
+* **AP - Application Processor**<a name="ap"></a>
+
+ The processor on the board that boots and runs ChromeOS.
+
+* **BAR - Barometer**<a name="bar"></a>
+
+ A sensor that measures atmospheric pressure.
+
+* **BC12 - Battery Charging**<a name="bc12"></a>
+
+ A device that implements the USB Battery Charging specification, version
+ 1.2. The complete [BC 1.2 Specification] is available from the USB
+ Implementers Forum.
+
+* **CBI - CROS Board Information**<a name="cbi"></a>
+
+ A collection of properties describing the board. This includes board
+ version, SKU, model name, and other fields. More details are found in the
+ [CrOS Board Info] documentation.
+
+* **CEC - Consumer Electronics Control**<a name="cec"></a>
+
+ A one-wire bidirectional bus. More details are on the [CEC Wikipedia page].
+
+* **DPTF - Dynamic Power and Thermal Framework (Intel)**<a name="dptf"></a>
+
+ Intel's platform based power and thermal management. See the [DPTF Readme]
+ for details on the implementation used in ChromeOS.
+
+* **EC - Embedded Controller**<a name="ec"></a>
+
+ The [MCU](#mcu) used to control the keyboard, battery charging, USB port
+ switching, sensor management, and other functions, offloading these tasks
+ from the [AP](#ap).
+
+* **eSPI - Enhanced Serial Peripheral Interface (Intel)**<a name="espi"></a>
+
+ Intel's synchronous communication interface between the [AP](#ap) and the
+ [EC](#ec). Supports quad I/O mode and clock speeds up to 66 Mhz, providing
+ bandwidth up to 264 Mbps. The full [eSPI Specification] is available from
+ Intel.
+
+* **GPIO - General Purpose Input/Output**<a name="gpio"></a>
+
+ An individual signal that can independently controlled and read. GPIOs are
+ used to enable/disable power rails, drive reset signals, and receive
+ interrupts from devices connected to the EC. GPIOs may also be connected
+ to [I/O expanders](#ioexpander).
+
+* **GYRO - Gyroscope**<a name="gyro"></a> <a name="gyro"></a>
+
+ A sensor that measures angular momentum, providing information about
+ rotational motion of the device.
+
+* **I/O Expander**<a name="ioexpander"></a>
+
+ An [I2C](#i2c) slave device that provides additional GPIO signals (anywhere
+ from 8 - 32 signals). GPIOs behind an I/O expander are written and read
+ using I2C register accesses from the I2C master.
+
+* **I2C - Inter-Integrated Circuit**<a name="i2c"></a>
+
+ A 2-wire synchronous communication bus, consisting of a clock signal and a
+ bidirectional data signal. An I2C bus typically contains one master device
+ and one more slave devices. The I2C standard defines supported clock speeds
+ of 100 KHz and 400 KHz. The full [I2C Specification] is available from NXP
+ (formerly Phillips).
+
+* **LPC - Low Pin Count bus**<a name="lpc"></a>
+
+ Legacy communication bus between the [AP](#ap) and [EC](#ec). Runs at 33
+ MHz, providing a 133 Mbps bandwidth connection. Replaced by the
+ [eSPI](#espi) interface.
+
+* **MAG - Magnetometer**<a name="mag"></a>
+
+ A digital compass sensor, providing orientation for navigation.
+
+* **MCU - Microcontroller Unit**<a name="mcu"></a>
+
+ A small integrated chip containing a CPU core, on-chip ROM, on-chip RAM.
+ Also contains multiple peripheral interfaces, including GPIO, I2C buses, SPI
+ buses, ADC, PWM, etc.
+
+* **PD - USB Power Delivery**<a name="pd"></a>
+
+ See the [USB-C documentation](./usb-c.md#pd) for more details.
+
+* **PMIC - Power Management IC**<a name="pmic"></a>
+
+ An integrated circuit used to turn power rails on and off.
+
+* **PPC - USB Power Path Controller**<a name="ppc"></a>
+
+ See the [USB-C documentation](./usb-c.md#ppc) for more details.
+
+* **PWM - Pulse Width Modulation**<a name="pwm"></a>
+
+ Method of varying the duty cycle of a signal to control another device. A
+ typical application is to control fan speeds or the brightness of a
+ backlight.
+
+* **SPI - Serial Peripheral Interconnect**<a name="spi"></a>
+
+ A 4-wire synchronous communication bus consisting of the signals CLK
+ (clock), MOSI (master-out-slave-in), MISO (master-in-slave-out), and CS
+ (chip-select, one per SPI slave). Clock speeds over 100 MHz are supported.
+ Communication involves a SPI frame, consisting of the assertion of chip
+ select, transmitting one or more bytes on the MOSI signal, receiving zero or
+ more bytes on the MISO signal, and de-assertion of the chip select. The
+ contents of a SPI frame varies based on the SPI slave type.
+
+* ***TCPC - USB Type-C Port Controller**<a name="tcpc"></a>
+
+ See the [USB-C documentation](./usb-c.md#tcpc) for more details.
+
+* **UART - Universal Asynchronous Receiver Transceiver**<a name="uart"></a>
+
+ Also known as a serial port. An asynchronous communication channel between
+ two devices with a dedicated receive pin, transmit pin, and ground. Optional
+ hardware flow control signals require additional connections between the
+ devices. Standard transmission rates are slow (up to 115200 bits per
+ second). Typical use is to provide a debug console to the EC. [RS-232] is
+ the protocol standard used by UARTs.
+
+[BC 1.2 Specification]: <https://www.usb.org/document-library/battery-charging-v12-spec-and-adopters-agreement>
+[CrOS Board Info]: <https://chromium.googlesource.com/chromiumos/docs/+/master/design_docs/cros_board_info.md>
+[CEC Wikipedia page]: <https://en.wikipedia.org/wiki/Consumer_Electronics_Control>
+[DPTF Readme]: <https://github.com/intel/dptf/blob/master/README.txt>
+[eSPI Specification]: <https://www.intel.com/content/dam/support/us/en/documents/software/chipset-software/327432-004_espi_base_specification_rev1.0.pdf>
+[I2C Specification]: <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>
+[RS-232]: <https://en.wikipedia.org/wiki/RS-232>
diff --git a/docs/sitemap.md b/docs/sitemap.md
index b1e30c5fd9..b46079f159 100644
--- a/docs/sitemap.md
+++ b/docs/sitemap.md
@@ -5,6 +5,7 @@
* [Getting Started Quickly](./getting_started_quickly.md)
* [Core Runtime](./core_runtime.md)
* [Write Protection](./write_protection.md)
+* [EC Acronyms and Technologies](./ec_terms.md)
## Case Closed Debugging (CCD)
diff --git a/docs/usb-c.md b/docs/usb-c.md
index 5f45058b56..b6bdb673de 100644
--- a/docs/usb-c.md
+++ b/docs/usb-c.md
@@ -25,10 +25,10 @@ Modes in the EC codebase.
## Glossary
-* PD
+* PD<a name="pd"></a>
* Power Delivery. Protocol over USB-C connector that allows up to 100W of
power. Not supported on USB-A or USB-B connectors.
-* TCPC
+* TCPC<a name="tcpc"></a>
* Type-C Port Controller. Typically a separate IC connected through I2C,
sometimes embedded within the EC as a hardware sub module. The TCPC
interprets physical layer signals on CC lines and Vbus, and sends that
@@ -37,7 +37,7 @@ Modes in the EC codebase.
that communicated with the main EC (also running this codebase), which
acted as the TCPM. More info in the official
[TCPC spec][USB TCPM Spec Id].
-* TCPM
+* TCPM<a name="tcpm"></a>
* Type-C Port Manager. Manages the state of the USB-C connection. Makes
decisions about what state to transition to. This is the code running on
the EC itself.
@@ -48,7 +48,7 @@ Modes in the EC codebase.
available, such as Try.SRC
* TC
* Type-C physical layer.
-* PPC
+* PPC<a name="ppc"></a>
* Power Path Controller. An optional, separate IC that isolates various
USB-C signals from each other and the rest of the board. This IC should
prevent shorts and over current/voltage scenarios for Vbus. Some PPCs