Re: [PATCH v3 2/4] extcon: usb-gpio: add support for VBUS detection

From: Robert Baldyga
Date: Fri Apr 10 2015 - 03:45:48 EST

On 04/10/2015 09:17 AM, Chanwoo Choi wrote:
> Hi Robert,
> On 04/09/2015 06:24 PM, Robert Baldyga wrote:
>> Hi Chanwoo,
>> On 04/09/2015 11:07 AM, Chanwoo Choi wrote:
>>> Hi Robert,
>>> On 04/09/2015 04:57 PM, Robert Baldyga wrote:
>>>> Hi Chanwoo,
>>>> On 04/09/2015 04:12 AM, Chanwoo Choi wrote:
>>>>> Hi Robert,
>>> [snip]
>>>>> But, I have one question about case[3]
>>>>> If id is low and vbus is high, this patch will update the state of both USB and USB-HOST cable as attached state.
>>>>> Is it possible that two different cables (both USB and USB-HOST) are connected to one port simultaneously?
>>>> It's because state of single USB cable connection cannot be completely
>>>> described using single extcon cable. USB cable state has two bits (VBUS
>>>> and ID), so we need to use two cables for single cable connection. We
>>>> use following convention:
>>>> cable "USB" = VBUS
>>>> cable "USB-HOST" = !ID.
>>> I think that extcon provider driver have to update the only one cable state
>>> of either USB or USB-HOST because USB and USB-HOST feature can not be used
>>> at the same time through one h/w port.
>>> If extcon-usb-gpio.c update two connected event of both USB and USB-HOST cable
>>> at the same time, the extcon consumer driver can not decide what handle either USB or USB-HOST.
>> It can. USB OTG allows for that. Moreover device can be host even if
>> ID=1 (so detected cable type is USB device), or peripheral when ID=0 (so
>> detected cable type is USB host). Devices would need to have complete
>> information about USB cable connection, because OTG state machine needs
> As I knew, USB OTG port don't send the attached cable of both USB and USB-HOST
> at the same time. The case3 in your patch update two cable state about one h/w port.

It's because simple "USB" or "USB-HOST" means nothing for USB OTG
machine. It needs to know exact VBUS and ID states, which cannot be
concluded basing on cable type only. That's why I have used "USB-HOST"
name together with "USB" to pass additional information about USB cable

> I don't agree.
>> that. As I wrote, current USB cable names are misleading. It would be
>> better to have "USB-VBUS" and "USB-ID".
> It is strange cable name. I prefer to use only 'USB' cable name.
> But, we could support the other method to get the state of whether USB-VBUS or USB-ID
> by using helper API or others.

Ok, so do you have any idea how to do it? Do we want to supply
additional API for notifying about VBUS and ID changes?

Robert Baldyga
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at