En Linux, puede controlar la dirección de la energía en un puerto determinado escribiendo "fuente" o "sumidero" en el control sysfs apropiado, por ejemplo:
# echo source >/sys/class/typec/port0/power_role
# cat /sys/class/typec/port0/power_role
[source] sink
El término entre paréntesis indica cómo fluye actualmente la energía. Consulte la documentación del kernel, consulte:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-typec
Por supuesto, todo esto funciona solo si el dispositivo conectado al puerto USB tipo C es compatible con Power Delivery. Por lo tanto, no funcionará con un adaptador de corriente tipo C típico o con la mayoría de las baterías portátiles tipo C, ya que rara vez son compatibles con PD a partir de 2019.
USB tipo C conectados entre sí, entonces, ¿cómo se decide qué carga cuál?
Todo esto es complicado más allá de la comprensión hasta ahora. El conector tipo C tiene dos funciones
- comunicación de datos
- entrega de potencia.
Estas son funciones casi independientes. Toda la funcionalidad depende de si
- ambos puertos son anfitriones USB
- ambos puertos son dispositivos USB
- un puerto es Dual-role-Data y otro no
- un puerto es de doble función
...
norte. ambos puertos son DRD y DRP,
Perdí todas las permutaciones aquí. El UCSI es un intento de Microsoft de domar esta gran permutabilidad en el estándar API. Para obtener ideas importantes, consulte esta presentación y muchas más publicaciones sobre la "interfaz UCSI".