USB Type-C™ / USB Power Delivery interface (UCPD) RM0440
2058/2126 RM0440 Rev 4
General programming sequence (with UCPD configured then enabled)
1. Set ANAMODE and ANASUBMODE[1:0] based on the current position in USB Type-C
state machine (and also the current advertisement in the case of a source). This turns
on the appropriate pull-ups/pull-downs on the CC lines, and define the voltage levels
that the TYPEC_VSTATE fields represent. Note that before programming the PHY is
effectively off
2. Read TYPEC_VSTATE_CC1/2 to determine the initial Type-C state (for example
whether the local source is connected to a remote sink)
3. In the case of no connection then wait for a connection event
4. Assuming a connection is detected and assuming a local Power Delivery functionality
is implemented, start sending/receiving Power Delivery messages
5. When a new interrupt/event occurs on PHYEVT1/2 indicating a change in stable
voltage, re-evaluate the implications and give this input to the Type-C state machine
Case of a source that needs to change between one of the three possible Rp values
(Default-USB / 1.5A / 3.0A) and the sink connected to it:
• [Source] Simply reprogram ANASUBMODE[1:0]
• [Sink behaviour from that time] PHYEVT1/2 occurs and the TYPEC_VSTATE1/2
changes accordingly
Programming for a dual-role port (DRP) toggling from source to sink:
• Simply re-program ANAMODE and ANASUBMODE[1:0] to start the new behavior
Detailed programming sequence (example):