Hi Hans, Hans de Goede <hdegoede@xxxxxxxxxx> wrote on Tue, 9 Apr 2019 09:38:01 +0200: > Hi, > > On 09-04-19 09:26, Miquel Raynal wrote: > > Hello, > > > > Adding Greg & Hans just in case they have an idea, or someone else to > > ping in mind. > > > > Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote on Wed, 3 Apr 2019 > > 10:13:43 +0200: > > > >> Hello, > >> > >> I am reading the document named "xHCI interoperability testing v0.94" > >> available on usb.org. There is this paragraph: > >> > >> Devices operating at Enhanced SuperSpeed GenX are allowed to > >> draw a maximum configured current of 900mA and unconfigured > >> current of 150mA. Devices operating at High-Speed or below may > >> draw a maximum configured current of 500mA and unconfigured > >> current of 100mA*. Devices must report their maximum configured > >> current draw and their power configuration as self or bus > >> powered to the host and must operate within the regions > >> reported. Additionally any device that is in the suspended > >> state may draw no more than 2.5 mA. > >> > >> My understanding is that the current limitation on Vbus should be tuned > >> dynamically between 100, 150, 500 and 900mA depending on the type of > >> device and if has been configured or not. > >> > >> Despite some researches in the USB core I can't find any mechanism > >> handling this in Linux implementation. > >> > >> Behind this remark, I actually have boards (Armada 7040/8040 DB) with a > >> regulator on Vbus to limit the current to either 500 or 900mA. I > >> checked the xhci-platform driver which is used with these SoCs and I > >> don't find any mean to tweak this value depending on the inserted > >> device. > >> > >> Should I actually care? Is it enough to limit to 900mA whenever the > >> xHCI driver is probed? > > To be clear you are talking about a regulator producing Vbus for device > plugged into the system, right ? > > In that case just configuring th current-limit at 900mA is fine, it really > is up to the device to not consume more then it may and even if it does since > the port is capable of delivering 900mA anyways that is not a problem. > > There is code in various places in the kernel for Linux devices to not > consume too much energy (mostly in charger ic drivers) when the Linux > device itself is an USB device drawing power. > > Regards, > > Hans > Thank you very much for answering my questions. I'll just stick to a 900mA limitation in all cases then. Thanks, Miquèl