1.. _tcpc_api:
2
3USB Type-C Port Controller (TCPC)
4#################################
5
6Overview
7********
8
9`TCPC <tcpc-specification_>`_ (USB Type-C Port Controller)
10The TCPC is a device used to simplify the implementation of a USB-C system
11by providing the following three function:
12
13* VBUS and VCONN control `USB Type-C <usb-type-c-specification_>`_:
14  The TCPC may provide a Source device, the mechanism to control VBUS sourcing,
15  and a Sink device, the mechanism to control VBUS sinking. A similar mechanism
16  is provided for the control of VCONN.
17
18* CC control and sensing:
19  The TCPC implements logic for controlling the CC pin pull-up and pull-down
20  resistors. It also provides a way to sense and report what resistors are
21  present on the CC pin.
22
23* Power Delivery message reception and transmission `USB Power Delivery <usb-pd-specification_>`_:
24  The TCPC sends and receives messages constructed in the TCPM and places them
25  on the CC lines.
26
27.. _tcpc-api:
28
29TCPC API
30========
31
32The TCPC device driver functions as the liaison between the TCPC device and the
33application software; this is accomplished by the Zephyr's API provided by the
34device driver that's used to  communicate with and control the TCPC device.
35
36Configuration Options
37*********************
38
39Related configuration options:
40
41* :kconfig:option:`CONFIG_USBC_TCPC_DRIVER`
42
43API Reference
44*************
45
46.. doxygengroup:: usb_type_c
47.. doxygengroup:: usb_type_c_port_controller_api
48.. doxygengroup:: usb_power_delivery
49
50.. _tcpc-specification:
51   https://www.usb.org/document-library/usb-type-cr-port-controller-interface-specification
52
53.. _usb-type-c-specification:
54   https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-21
55
56.. _usb-pd-specification:
57   https://www.usb.org/document-library/usb-power-delivery
58