On Fri, Sep 17, 2021 at 6:25 AM Badhri Jagan Sridharan <badhri@xxxxxxxxxx> wrote: > > On Thu, Sep 16, 2021 at 7:12 AM Adam Thomson > <Adam.Thomson.Opensource@xxxxxxxxxxx> wrote: > > > > On 16 September 2021 11:23, Heikki Krogerus wrote: > > > > > > Thanks for providing the clarification. So you're proposing a port-psy and a > > > > port-partner-psy that are connected to each other (one supplying the other). > > > > If PD is not present, those two will exist per port and partner, and there > > > > will be information about Type-C current (and possibly BC 1.2 and other > > > > methods?) > > > > > > Yes, exactly. As Benson mentioned PDOs contain more than power details like USB Suspend indicator etc or Type-C only devices as Badhri mentioned here may not integrate well with PSY class. Additionally, it is also important to consider cable properties here for power as they also have a role to play in the power limits and necessitates change of existing PDOs or power limits. ( Type-C Monitor charging a computing system does not have captive cables) Given too many possibilities, would an approach similar to gadgetfs/configfs or cpu scaling say like "type-configfs" or "typec scaling" ABI framework that allows USB=C port management under one path /sys/class/typec that allows: - Provision to manage USB-C port power ( Power supply class should still represent power contract established, as remaining characteristics are nested with functional aspects and relevant on a power contract failure ) + dynamically change Rp ( Rp(default) is required to enter USB suspend) + Set PDO Policy ( PPS, Fixed, etc) + Give back power + Expose complete PDO ( As we do for VDOs) + Change USB Suspend flag - Provision for extended messages + Provides additional details regarding ports like Get Status etc. This shall allow us to take system level decisions. - Provision to manage USB-C modes + Provision to enter modes as provided by interface standards like UCSI With this user tools like Chrome OS "typecd" be able to use a single class and its ABIs to manage USB-C port power and mode. Kindly correct me if I am missing something here.