All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq@ti.com>
To: Chanwoo Choi <cw00.choi@samsung.com>
Cc: Robert Baldyga <r.baldyga@samsung.com>,
	<myungjoo.ham@samsung.com>, <linux-usb@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<m.szyprowski@samsung.com>, "Balbi, Felipe" <balbi@ti.com>,
	"ABRAHAM, KISHON VIJAY" <kishon@ti.com>,
	Peter Chen <peter.chen@freescale.com>
Subject: Re: [PATCH v3 2/4] extcon: usb-gpio: add support for VBUS detection
Date: Tue, 14 Apr 2015 13:38:58 +0300	[thread overview]
Message-ID: <552CEE42.1050907@ti.com> (raw)
In-Reply-To: <552CEC97.1050205@samsung.com>

On 14/04/15 13:31, Chanwoo Choi wrote:
> On 04/14/2015 07:02 PM, Roger Quadros wrote:
>> Fixed Kishon's id.
>>
>> On 14/04/15 13:01, Roger Quadros wrote:
>>> On 10/04/15 12:18, Chanwoo Choi wrote:
>>>> On 04/10/2015 05:46 PM, Robert Baldyga wrote:
>>>>> On 04/10/2015 10:10 AM, Chanwoo Choi wrote:
>>>>>> On 04/10/2015 04:45 PM, Robert Baldyga wrote:
>>>>>>> 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
>>>>>>> connection.
>>>>>>
>>>>>> I think this method is not proper to support this case.
>>>>>> It may cause the confusion about other case using USB/USB-HOST cable state
>>>>>> except of you commented case.
>>>>>
>>>>> That's why I finally proposed to use "USB-ID" and "USB-VBUS" in parallel
>>>>> with old names. It seems to be simpler solution than adding new
>>>>> mechanism notifying about VBUS and ID states changes.
>>>>
>>>>
>>>> As I commented on previous reply, I don't agree to use 'USB-ID' and 'USB-VBUS'.
>>>> If we add new strange 'USB-ID' and 'USB-VBUS' name, we would add non-general cable
>>>> name continuoulsy.
>>>>
>>>> I think that extcon core provide the helper API to get the value of VBUS.
>>>> But I need to consider it.
>>>
>>> Now it is starting to look like existing extcon states are not suitable for USB/PHY drivers to deliver
>>> VBUS and ID information reliably.
>>> This is because based on your comments the "USB" and "USB-HOST" states look like some fuzzy states
>>> and have no direct correspondence with "VBUS" and "ID". The fact that they can't become
>>> attached simultaneously makes me conclude that "USB" and "USB-HOST" cable states are really 
>>> capturing only the ID pin state.
>>>
>>> I can suggest the following options
>>> a) let "USB" and "USB-HOST" only indicate ID pin status. Add a new cable state for "VBUS" notification.
>>> Maybe call it "USB-POWER" or something.
> 
> We must discuss it before using the new cable name
> such as "USB-POWER", "USB-ID" and "USB-VBUS".

I didn't say to add "USB-ID" or "USB-VBUS". solution (a) was to have the following
"USB" - attached means ID is high. i.e. Type-B plug attached.
"USB-HOST" - attached means ID is low. i.e. Type-A plug attached.
"USB-POWER" - attached means USB power is present. i.e. VBUS is alive.

This way the definition of USB and USB-HOST remain true to their name and avoid further confusions.
VBUS state is got through the "USB-POWER" cable state.

> 
> What is the appropriate method of following two solution?
> - Fisrt, use the new cable name "USB-*".
I explained this above.

> - Second, use the additional API to get the VBUS state.

You keep mentioning additional API for VBUS. But I don't see any such API. Can you please
suggest what API you are talking about?

cheers,
-roger


> 
> Cheers,
> Chanwoo Choi
> 
>>>
>>> NOTE: "USB-POWER" can become attached simultaneously with "USB" or "USB-HOST". But "USB-POWER" is now really
>>> a different cable like "Fast-Charger" or "Slow-Charger".
>>>
>>> b) stop using extcon framework for USB VBUS and ID notification.
> 
> 


WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
To: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Cc: Robert Baldyga
	<r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, "Balbi,
	Felipe" <balbi-l0cyMroinI0@public.gmane.org>,
	"ABRAHAM, KISHON VIJAY" <kishon-l0cyMroinI0@public.gmane.org>,
	Peter Chen <peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: [PATCH v3 2/4] extcon: usb-gpio: add support for VBUS detection
Date: Tue, 14 Apr 2015 13:38:58 +0300	[thread overview]
Message-ID: <552CEE42.1050907@ti.com> (raw)
In-Reply-To: <552CEC97.1050205-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>

On 14/04/15 13:31, Chanwoo Choi wrote:
> On 04/14/2015 07:02 PM, Roger Quadros wrote:
>> Fixed Kishon's id.
>>
>> On 14/04/15 13:01, Roger Quadros wrote:
>>> On 10/04/15 12:18, Chanwoo Choi wrote:
>>>> On 04/10/2015 05:46 PM, Robert Baldyga wrote:
>>>>> On 04/10/2015 10:10 AM, Chanwoo Choi wrote:
>>>>>> On 04/10/2015 04:45 PM, Robert Baldyga wrote:
>>>>>>> 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
>>>>>>> connection.
>>>>>>
>>>>>> I think this method is not proper to support this case.
>>>>>> It may cause the confusion about other case using USB/USB-HOST cable state
>>>>>> except of you commented case.
>>>>>
>>>>> That's why I finally proposed to use "USB-ID" and "USB-VBUS" in parallel
>>>>> with old names. It seems to be simpler solution than adding new
>>>>> mechanism notifying about VBUS and ID states changes.
>>>>
>>>>
>>>> As I commented on previous reply, I don't agree to use 'USB-ID' and 'USB-VBUS'.
>>>> If we add new strange 'USB-ID' and 'USB-VBUS' name, we would add non-general cable
>>>> name continuoulsy.
>>>>
>>>> I think that extcon core provide the helper API to get the value of VBUS.
>>>> But I need to consider it.
>>>
>>> Now it is starting to look like existing extcon states are not suitable for USB/PHY drivers to deliver
>>> VBUS and ID information reliably.
>>> This is because based on your comments the "USB" and "USB-HOST" states look like some fuzzy states
>>> and have no direct correspondence with "VBUS" and "ID". The fact that they can't become
>>> attached simultaneously makes me conclude that "USB" and "USB-HOST" cable states are really 
>>> capturing only the ID pin state.
>>>
>>> I can suggest the following options
>>> a) let "USB" and "USB-HOST" only indicate ID pin status. Add a new cable state for "VBUS" notification.
>>> Maybe call it "USB-POWER" or something.
> 
> We must discuss it before using the new cable name
> such as "USB-POWER", "USB-ID" and "USB-VBUS".

I didn't say to add "USB-ID" or "USB-VBUS". solution (a) was to have the following
"USB" - attached means ID is high. i.e. Type-B plug attached.
"USB-HOST" - attached means ID is low. i.e. Type-A plug attached.
"USB-POWER" - attached means USB power is present. i.e. VBUS is alive.

This way the definition of USB and USB-HOST remain true to their name and avoid further confusions.
VBUS state is got through the "USB-POWER" cable state.

> 
> What is the appropriate method of following two solution?
> - Fisrt, use the new cable name "USB-*".
I explained this above.

> - Second, use the additional API to get the VBUS state.

You keep mentioning additional API for VBUS. But I don't see any such API. Can you please
suggest what API you are talking about?

cheers,
-roger


> 
> Cheers,
> Chanwoo Choi
> 
>>>
>>> NOTE: "USB-POWER" can become attached simultaneously with "USB" or "USB-HOST". But "USB-POWER" is now really
>>> a different cable like "Fast-Charger" or "Slow-Charger".
>>>
>>> b) stop using extcon framework for USB VBUS and ID notification.
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2015-04-14 10:39 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02 13:13 [PATCH v3 0/4] extcon: usb-gpio: fixes and improvements Robert Baldyga
2015-04-02 13:13 ` [PATCH v3 1/4] extcon: usb-gpio: register extcon device before IRQ registration Robert Baldyga
2015-04-03  0:09   ` Chanwoo Choi
2015-04-02 13:13 ` [PATCH v3 2/4] extcon: usb-gpio: add support for VBUS detection Robert Baldyga
2015-04-02 14:02   ` Roger Quadros
2015-04-02 14:02     ` Roger Quadros
2015-04-09  2:12   ` Chanwoo Choi
2015-04-09  2:12     ` Chanwoo Choi
2015-04-09  7:57     ` Robert Baldyga
2015-04-09  9:07       ` Chanwoo Choi
2015-04-09  9:07         ` Chanwoo Choi
2015-04-09  9:24         ` Robert Baldyga
2015-04-09  9:59           ` Roger Quadros
2015-04-09  9:59             ` Roger Quadros
2015-04-09 10:18             ` Robert Baldyga
2015-04-10  7:39             ` Chanwoo Choi
2015-04-10  7:17           ` Chanwoo Choi
2015-04-10  7:17             ` Chanwoo Choi
2015-04-10  7:45             ` Robert Baldyga
2015-04-10  8:10               ` Chanwoo Choi
2015-04-10  8:46                 ` Robert Baldyga
2015-04-10  9:18                   ` Chanwoo Choi
2015-04-10  9:42                     ` Robert Baldyga
2015-04-14 10:01                     ` Roger Quadros
2015-04-14 10:01                       ` Roger Quadros
2015-04-14 10:02                       ` Roger Quadros
2015-04-14 10:02                         ` Roger Quadros
2015-04-14 10:31                         ` Chanwoo Choi
2015-04-14 10:31                           ` Chanwoo Choi
2015-04-14 10:38                           ` Roger Quadros [this message]
2015-04-14 10:38                             ` Roger Quadros
2015-04-14 11:29                             ` Chanwoo Choi
2015-04-15  3:27                               ` Peter Chen
2015-04-15  3:27                                 ` Peter Chen
2015-04-15  7:50                                 ` Roger Quadros
2015-04-15  7:50                                   ` Roger Quadros
2015-04-15  9:26                                   ` Chanwoo Choi
2015-04-16  1:59                                     ` Peter Chen
2015-04-16  1:59                                       ` Peter Chen
2015-04-16  7:00                                       ` Chanwoo Choi
2015-04-16  7:13                                         ` Ivan T. Ivanov
2015-04-16  7:13                                           ` Ivan T. Ivanov
2015-04-16  7:59                                           ` Chanwoo Choi
2015-04-16  7:59                                             ` Chanwoo Choi
2015-04-16  8:01                                             ` Peter Chen
2015-04-16  8:01                                               ` Peter Chen
2015-04-16  8:26                                               ` Chanwoo Choi
2015-04-30  7:32                                                 ` Roger Quadros
2015-04-30  7:32                                                   ` Roger Quadros
2015-04-30  7:55                                                   ` Chanwoo Choi
2015-04-30  8:04                                                     ` Roger Quadros
2015-04-30  8:04                                                       ` Roger Quadros
2015-04-16  7:59                                           ` Peter Chen
2015-04-16  7:59                                             ` Peter Chen
2015-04-16  7:16                                         ` Roger Quadros
2015-04-16  7:16                                           ` Roger Quadros
2015-04-02 13:13 ` [PATCH v3 3/4] extcon: usb-gpio: make debounce value configurable in devicetree Robert Baldyga
2015-04-02 13:13 ` [PATCH v3 4/4] Documentation: extcon: usb-gpio: update usb-gpio binding description Robert Baldyga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=552CEE42.1050907@ti.com \
    --to=rogerq@ti.com \
    --cc=balbi@ti.com \
    --cc=cw00.choi@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kishon@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=peter.chen@freescale.com \
    --cc=r.baldyga@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.