diff --git a/doc/reference/api/overview.rst b/doc/reference/api/overview.rst index 970f11c22ba..7945f1a9364 100644 --- a/doc/reference/api/overview.rst +++ b/doc/reference/api/overview.rst @@ -287,6 +287,11 @@ current :ref:`stability level `. - 2.5 - 2.5 + * - :ref:`tcpc_api` + - Experimental + - 3.1 + - 3.1 + * - :ref:`uart_api` - Stable - 1.0 diff --git a/doc/reference/peripherals/index.rst b/doc/reference/peripherals/index.rst index 194e3ac6bcd..0016361775b 100644 --- a/doc/reference/peripherals/index.rst +++ b/doc/reference/peripherals/index.rst @@ -32,6 +32,7 @@ Peripherals rtc.rst sensor.rst spi.rst + tcpc.rst uart.rst mdio.rst watchdog.rst diff --git a/doc/reference/peripherals/tcpc.rst b/doc/reference/peripherals/tcpc.rst new file mode 100644 index 00000000000..66ef5fdcd6e --- /dev/null +++ b/doc/reference/peripherals/tcpc.rst @@ -0,0 +1,57 @@ +.. _tcpc_api: + +TCPC +#### + +Overview +******** + +`TCPC `_ (USB Type-C Port Controller) +The TCPC is a device used to simplify the implementation of a USB-C system +by providing the following three function: + +* VBUS and VCONN control `USB Type-C `_: + The TCPC may provide a Source device, the mechanism to control VBUS sourcing, + and a Sink device, the mechanism to control VBUS sinking. A similar mechanism + is provided for the control of VCONN. + +* CC control and sensing: + The TCPC implements logic for controlling the CC pin pull-up and pull-down + resistors. It also provides a way to sense and report what resistors are + present on the CC pin. + +* Power Delivery message reception and transmission `USB Power Delivery `_: + The TCPC sends and receives messages constructed in the TCPM and places them + on the CC lines. + +.. _tcpc-api: + +TCPC API +======== + +The TCPC device driver functions as the liaison between the TCPC device and the +application software; this is accomplished by the Zephyr's API provided by the +device driver that's used to communicate with and control the TCPC device. + +Configuration Options +********************* + +Related configuration options: + +* :kconfig:option:`CONFIG_USBC_TCPC_DRIVER` + +API Reference +************* + +.. doxygengroup:: usb_type_c +.. doxygengroup:: usb_type_c_port_controller_api +.. doxygengroup:: usb_power_delivery + +.. _tcpc-specification: + https://www.usb.org/document-library/usb-type-cr-port-controller-interface-specification + +.. _usb-type-c-specification: + https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-21 + +.. _usb-pd-specification: + https://www.usb.org/document-library/usb-power-delivery