zephyr/samples/subsys/usb_c/source
..
boards
src
CMakeLists.txt
README.rst
prj.conf
sample.yaml

README.rst

.. zephyr:code-sample:: usb-c-source
   :name: Basic USB-C Source
   :relevant-api: _usbc_device_api

   Implement a USB-C Power Delivery application in the form of a USB-C Source.

Overview
********

This example demonstrates how to create a USB-C Power Delivery application
using the USB-C subsystem. The application implements a USB-C Source device.

After a USB-C Sink device is plugged into the USB-C Source device, it
negotiates with the Source device to provide 5V at 100mA, 9V at 100mA,
or 15V at 100mA and the Requested Data Object (RDO) provided by the Source
is displayed.

.. _usb-c-source-sample-requirements:

Requirements
************
The TCPC device used by the sample is specified in the devicetree
node that's compatible with ``usb-c-connector``.
The sample has been tested on ``stm32g081b_eval``.
An overlay file is provided.

Building and Running
********************

Build and flash as follows, changing ``stm32g081b_eval`` for your board:

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/usb_c/source
   :board: stm32g081b_eval
   :goals: build flash
   :compact:

Connect a sink device and see console output:

Sample Output
=============

.. code-block:: console

 PRL_TX_SUSPEND
 PRL_HR_SUSPEND
 PE_SUSPEND
 UnattachedWait.SRC
 Unattached.SRC
 AttachWait.SRC
 Attached.SRC
 PE_SRC_Startup
 PRL_INIT
 PRL_HR_Wait_for_Request
 PRL_Tx_PHY_Layer_Reset
 PRL_Tx_Wait_for_Message_Request
 PE_SRC_Send_Capabilities
 PRL_Tx_Wait_for_PHY_response
 PRL_Tx_Wait_for_Message_Request
 PE_SRC_Discover
 PE_SRC_Send_Capabilities
 PRL_Tx_Wait_for_PHY_response
 RECV 1042/1
    [0]1300280a
 PRL_Tx_Wait_for_Message_Request
 PE_SRC_Negotiate_Capability
 PE_SRC_Transition_Supply
 PRL_Tx_Wait_for_PHY_response
 RECV 0441/0
 PRL_Tx_Wait_for_Message_Request
 PE_SRC_Ready
 PRL_Tx_Wait_for_PHY_response
 RECV 0641/0
 PRL_Tx_Wait_for_Message_Request
 REQUEST RDO: 1300280a
  Object Position:         1
  Giveback:                0
  Capability Mismatch:     0
  USB Comm Capable:        1
  No USB Suspend:          1
  Unchunk Ext MSG Support: 0
  Operating Current:       100 mA
  Min Operating Current:   100 mA