Negotiation Explanation
SOURCE_CAPABILITIES - Source Capabilities
This is a message from the source to 'advertise' the power modes that it is capable of supplying.
The capabilities are communicated as a list of options with different fixed voltages, current limits, and supported features. The most interesting of these is the - optional - Programmable Power Supply(PPS) mode allowing the sink device to micromanage the delivered voltage and current to optimize power conversion and delivery.
This can be broadcast numerous times by the source, or the sink can request it with GET_SOURCE_CAP .
There is an equivalent GET_SINK_CAP and SINK_CAPABILITIES to request and communicate a device's ability to pull power.
REQUEST - Request
The sink will respond with a selection of one of the modes.
The sink responds with a number corresponding to the index of the source mode from the list that the source advertised.
The sink can send another REQUEST message at any time(with caveats) to request a different source mode. This can happen when the device turns on or whenever it would like to charge faster/slower.
... continue reading