Re: [RFC 01/19] extcon: add extcon-odroid-usbotg driver

From: Roger Quadros
Date: Fri Mar 20 2015 - 04:51:42 EST


Chanwoo & Robert,

On 20/03/15 09:45, Chanwoo Choi wrote:
> Hi Robert,
>
> On 03/20/2015 04:25 PM, Robert Baldyga wrote:
>> Hi Chanwoo,
>>
>> On 03/19/2015 09:50 PM, Chanwoo Choi wrote:
>>> Hi Roger,
>>>
>>> On Thu, Mar 19, 2015 at 11:45 PM, Roger Quadros <rogerq@xxxxxx> wrote:
>>>> On 19/03/15 14:19, George Cherian wrote:
>>>>> Hi Robert,
>>>>>
>>>>> +Roger
>>>>> On Thu, Mar 19, 2015 at 5:37 PM, Robert Baldyga <r.baldyga@xxxxxxxxxxx> wrote:
>>>>>> Hi George,
>>>>>>
>>>>>> On 03/19/2015 09:50 AM, George Cherian wrote:
>>>>>>> Hi Robert,
>>>>>>>
>>>>>>> This looks like a extcon driver based on gpio for USB.
>>>>>>>
>>>>>>> Roger posted a generic one a while back.
>>>>>>> https://lkml.org/lkml/2015/2/2/187
>>>>>>>
>>>>>>> Doesn't this serve the purpose rather than adding this driver?
>>>>>>
>>>>>> Roger's driver doesn't support VBUS state detection so it cannot handle
>>>>> I feel Roger's driver could be extended for supporting VBUS.
>>>>> Also I think Roger's driver is about to get merged.
>>>>> Probably, Roger or Chanwoo can better tell that
>>>>
>>>> It is already queued for 4.1 and is available in linux-next.
>>>>
>>>>>
>>>>>> situation when USB cable is unpluged. In addition some of Odroid boards
>>>>>> has only VBUS detection (without ID pin), so this driver cannot handle
>>>>>> them at all.
>>>>
>>>> why not?
>>>>
>>>> x15-beagleboard also gets VBUS event over GPIO and I was planning to extent it
>>>> to support VBUS detection.
>>>
>>> Sounds good to me to extent extcon-usb-gpio.c.
>>> I'd like to hold only one extcon driver to support both USB and
>>> USB-HOST with gpio .
>>>
>>> There are one more extcon-gpio driver in mailing list as following:
>>> - extcon-usb-gpio.c (will be merged to Linux 4.1)
>>> - extcon-odroid-usbotg.c
>>> - extcon-otg_gpio.c [1]
>>> [1] https://lkml.org/lkml/2015/2/19/411
>>>
>>> The each extcon gpio driver support both USB/USB-HOST cable by using
>>> different way,
>>> Because some board which detect USB/USB-HOST by gpio have a little
>>> different pin composition
>>
>> These differences are small. In general we have three cases:
>>
>> 1. We have both VBUS and ID pin detection - we can detect USB, USB-HOST
>> and cable disconnection.
>>
>> 2. We have only VBUS detection - we can detect USB and cable disconnection.
>>
>> 3. We have ID pin only - we can distinguish between USB and USB-HOST but
>> without ability to detect cable disconnection.
>>
>>>
>>> I think only one extcon driver can support all cases with optional properties.
>>
>> So my driver in current form is ready for that. Only thing it would need
>> to change is to make VBUS detection an option (for now is mandatory
>> because all of supported Odroid boards have it). Then boards with VBUS
>> detection only or ID pin detection only will be handled also. I can also
>> change name of the driver to more generic. I'm going to prepare V2 on my
>> patches today.
>
> Could you implement this feature on extcon-usb-gpio.c to support various pin composition?
> because extcon-usb-gpio.c was already implemented by Roger.
> If you implement other extcon driver to detect USB/USB-HOST cable by using gpio,
> there will be similar two extcon gpio driver for USB cable.
>
> And,
> As Roger comment, he have the plan to extend the extcon-usb-gpio.c.
> So, If you will implement some feature for extcon driver with gpio,
> I'd like you to share your plan this thread to remove duplicat work.

extcon-usb-gpio.c supports case (3). (only ID pin)
I have plans to support case (1). (both ID and VBUS)

But Robert can go ahead and implement (2) and (1) over extcon-usb-gpio.c
if he wishes. The driver can easily decide which logic to follow depending on the
availability of the GPIO pins in the device tree.

cheers,
-roger

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/