Sous Linux, vous pouvez contrôler le sens de l'alimentation sur un port donné en écrivant "source" ou "sink" dans le contrôle sysfs approprié, par exemple :
# echo source >/sys/class/typec/port0/power_role
# cat /sys/class/typec/port0/power_role
[source] sink
Le terme entre parenthèses indique comment le courant circule actuellement. Voir la documentation du noyau voir :https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-typec
Bien sûr, tout cela ne fonctionne que si l'appareil connecté au port USB Type-C prend en charge Power Delivery. Il ne fonctionnera donc pas avec un adaptateur secteur typique de type C ou la plupart des batteries portables de type C, car ils prennent rarement en charge PD à partir de 2019.
USB de type C connectés ensemble, alors comment décide-t-on qui charge quoi ?
Tout cela est alambiqué au-delà de la compréhension jusqu'à présent. Le connecteur de type C a deux rôles
- communication de données
- délivrance de puissance.
Ce sont des fonctions presque indépendantes. L'ensemble de la fonctionnalité dépend si
- les deux ports sont des hôtes USB
- les deux ports sont des périphériques USB
- un port est Dual-role-Data et un autre non
- un port est à alimentation double
...
n.m. les deux ports sont DRD et DRP,
J'ai perdu toutes les permutations ici. L'UCSI est une tentative de Microsoft pour apprivoiser cette vaste permutabilité dans la norme API. Pour les grandes idées, voir cette présentation, et bien d'autres publications sur "l'interface UCSI".