Re: [RFC PATCH v3 1/2] usb: typec: USB Type-C Port Manager (tcpm)

From: Guenter Roeck
Date: Fri Sep 09 2016 - 22:23:26 EST


On Fri, Sep 9, 2016 at 5:26 PM, Jun Li <jun.li@xxxxxxx> wrote:
> Hi Guenter,
>
>> -----Original Message-----
>> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-
>> owner@xxxxxxxxxxxxxxx] On Behalf Of Guenter Roeck
>> Sent: Wednesday, August 24, 2016 5:11 AM
>> To: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
>> Cc: Chandra Sekhar Anagani <chandra.sekhar.anagani@xxxxxxxxx>; Bruce
>> Ashfield <bruce.ashfield@xxxxxxxxxxxxx>; Bin Gao <bin.gao@xxxxxxxxx>;
>> Pranav Tipnis <pranav.tipnis@xxxxxxxxx>; Heikki Krogerus
>> <heikki.krogerus@xxxxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; linux-
>> usb@xxxxxxxxxxxxxxx; Guenter Roeck <groeck@xxxxxxxxxxxx>
>> Subject: [RFC PATCH v3 1/2] usb: typec: USB Type-C Port Manager (tcpm)
>>
>> This driver implements the USB Type-C Power Delivery state machine
>> for both source and sink ports. Alternate mode support is not
>> fully implemented.
>>
>> The driver attaches to the USB Type-C class code implemented in
>> the following patches.
>>
>> usb: typec: add driver for Intel Whiskey Cove PMIC USB Type-C PHY
>> usb: USB Type-C connector class
>>
>> This driver only implements the state machine. Lower level drivers are
>> responsible for
>> - Reporting VBUS status and activating VBUS
>> - Setting CC lines and providing CC line status
>> - Setting line polarity
>> - Activating and deactivating VCONN
>> - Setting the current limit
>> - Activating and deactivating PD message transfers
>> - Sending and receiving PD messages
>>
>> The driver provides both a functional API as well as callbacks for
>> lower level drivers.
>>
>> Signed-off-by: Guenter Roeck <groeck@xxxxxxxxxxxx>
>> ---
>
> A specific question, if power sink wants to request a new power level
> after SNK_READY, how to handle it with this tcpm?
>

So far I have considered the required power level to be static, based
on our curent implementations. That should be easy to change, though,
with an additional API function, to be called from a low level driver.
Do you have that requirement, and would such a function meet your
needs ?

Thanks,
Guenter