Hi Heikki and Guenter, > On 7/31/23 06:33, Heikki Krogerus wrote: > > Hi, > > > > I'm sorry to keep you waiting. > > > > On Fri, Jun 30, 2023 at 06:56:56PM +0800, Xu Yang wrote: > >> PD3.0 Spec 6.4.1.3.1 said: > >> For a Sink requiring no power from the Source, the Voltage (B19…10) > >> Shall be set to 5V and the Operational Current Shall be set to 0mA. > >> > >> Therefore, we can keep sink path closed if the operational current of > >> the first fixed PDO is 0mA. > >> > >> Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> > >> --- > >> drivers/usb/typec/tcpm/tcpm.c | 12 ++++++++++-- > >> 1 file changed, 10 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c > >> index 829d75ebab42..4f7e4c50e847 100644 > >> --- a/drivers/usb/typec/tcpm/tcpm.c > >> +++ b/drivers/usb/typec/tcpm/tcpm.c > >> @@ -4301,7 +4301,12 @@ static void run_state_machine(struct tcpm_port *port) > >> if (port->slow_charger_loop && (current_lim > PD_P_SNK_STDBY_MW / 5)) > >> current_lim = PD_P_SNK_STDBY_MW / 5; > >> tcpm_set_current_limit(port, current_lim, 5000); > >> - tcpm_set_charge(port, true); > >> + > >> + if (pdo_max_current(port->snk_pdo[0])) > >> + tcpm_set_charge(port, true); > >> + else > >> + tcpm_log(port, "Not require power from Source"); > >> + > >> if (!port->pd_supported) > >> tcpm_set_state(port, SNK_READY, 0); > >> else > >> @@ -4582,7 +4587,10 @@ static void run_state_machine(struct tcpm_port *port) > >> tcpm_set_current_limit(port, > >> tcpm_get_current_limit(port), > >> 5000); > >> - tcpm_set_charge(port, true); > >> + if (pdo_max_current(port->snk_pdo[0])) > >> + tcpm_set_charge(port, true); > >> + else > >> + tcpm_log(port, "Not require power from Source"); > > > > Shouldn't you still always call tcpm_set_charge()? > > > > tcpm_set_charge(port, pdo_max_current(port->snk_pdo[0])); > > > > I think so, something like > tcpm_set_charge(port, !!pdo_max_current(port->snk_pdo[0])); I assume the sink path is already closed before tcpm_set_charge(). But this way of handling is also okay for me. Will send out v2 later. Thanks, Xu Yang > > Guenter > > > I think we need to wait for comments from Guenter. I don't know this > > driver well enough. > > > > thanks, > >