1
\$\begingroup\$

As nowadays PC motherboards supports USB voltage manipulation I will ask on given example hardware/software. I am using Ubuntu 20.04 installed on machine with Motherboard Gigabyte AORUS Z390 Master. Gigabyte provides a tool for Windows only called USB TurboCharger in section Utility. This tool allows to switch to Quick Charge 3.0 mode when Android device connected. I would like to use this feature on Ubuntu but I cannot find any information about the technical specification either on Gigabyte nor Qualcomm websites. From the first phase of investigation I know that the device is using one of USB Root Hub (USB 3.0) ports in Standard mode. Now while switch to Quick Charge the device is removing from USB devices and some part of this software takes control on the connection. USB Turbo Charger Details are on page 120 in manual. As there are general information my two questions are:

  1. Is this communication done on Generic USB driver level or the QC protocol requres any specific driver?
  2. Is there any library or application on Linux that can handle it?

Additional Question

If I would need to implement it by my self is there any tutorial to getting started with programming USB Driver it in CPP or Java for Linux?

The option which is comming to my mind would be to install it by wine but I'd rather like to avoid it.

As I am preety new in asking questions here, thus if someone or something wants to close my question please provide a path where I can ask exactly this question to get some help.

\$\endgroup\$
3
  • \$\begingroup\$ Tbh if you can run it via wine would be the path of least resistance. I doubt it's a os level driver. Likely controls the cpu or one of the bridges at a lower level, as quick charge is not compatible with data transfer. \$\endgroup\$
    – Passerby
    Commented Jan 10, 2021 at 8:48
  • \$\begingroup\$ yeah need to try wine, but so far I used driverquery command in cmd and found that there is installed additional driver UsbCharger UsbCharger Kernel 24.10.2013 11:26:43 so it is a kernel driver level stuff, though I don't know yet how to beat it ;) \$\endgroup\$ Commented Jan 10, 2021 at 9:19
  • \$\begingroup\$ See derbymakers.co.uk/articles/2019/… but I'm not sure if this is the same type of traffic. Good luck reverse engineering this. Look into Linux kernel hackers and mods for support they typically love getting this into mainline kernels. \$\endgroup\$
    – Passerby
    Commented Jan 10, 2021 at 13:27

1 Answer 1

2
\$\begingroup\$

Both Qualcomm QC and Apple FAst charge are proprietary protocols not disclosed to general public. Both would require a special hardware (at least high-side VBUS controller) to implement, so this is definitely outside the scope of any software driver.

So you will need to identify what kind of special/particular IC(s) is(are) used for this function. Typically the control of added port power functionality is done over I2C interface controlled from platform's Embedded Controller Unit. Then the ECU needs to provide some higher-level interface for application level. If it would be Type-C port, than it will be likely implemented over "USB Type-C Connector System Software Interface (UCSI) driver" specification, but in this case it is USB-A port, so I would not bet on open specification for this. It is highly unlikely that you will find "tutorials" for this.

\$\endgroup\$
1
  • \$\begingroup\$ Apple fast charging is just their "branding" for USB-PD. It appears they do some "unique" but not standards breaking charging. One example is using USB-PD to get 5 V @ 2.4 A from USB-A ports. This violates no standard but other systems would use the USB-BC or USB 3.x limit of 5 V @ 1.5 A, or would use something like Quick Charge to allow more power. \$\endgroup\$
    – MacGuffin
    Commented Jan 10, 2021 at 22:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.