In Linux puoi controllare la direzione dell'alimentazione su una data porta scrivendo "source" o "sink" nel controllo sysfs appropriato, es.:
# echo source >/sys/class/typec/port0/power_role
# cat /sys/class/typec/port0/power_role
[source] sink
Il termine tra parentesi indica come scorre attualmente il potere. Consulta la documentazione del kernel:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-typec
Ovviamente tutto questo funziona solo se il dispositivo connesso alla porta USB Type-C supporta il Power Delivery. Quindi non funzionerà con un tipico alimentatore di tipo C o con la maggior parte delle batterie portatili di tipo C poiché raramente supportano PD a partire dal 2019.
USB di tipo C collegati insieme, allora come si decide quale carica quale?
Finora tutto questo è contorto oltre ogni comprensione. Il connettore di tipo C ha due ruoli
- comunicazione dati
- erogazione di potenza.
Queste sono funzioni quasi indipendenti. L'intera funzionalità dipende dal fatto che
- entrambe le porte sono host USB
- entrambe le porte sono dispositivi USB
- una porta è Dual-role-Data e un'altra no
- una porta è Dual-role-power
...
n. entrambe le porte sono DRD e DRP,
Ho perso tutte le permutazioni qui. L'UCSI è un tentativo di Microsoft di domare questa vasta permutivity nello standard API. Per idee importanti, vedere questa presentazione e molte altre pubblicazioni sull'"interfaccia UCSI".