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

From: Roger Quadros
Date: Thu Apr 30 2015 - 04:04:38 EST


On 30/04/15 10:55, Chanwoo Choi wrote:
> On 04/30/2015 04:32 PM, Roger Quadros wrote:
>> On 16/04/15 11:26, Chanwoo Choi wrote:
>>> On 04/16/2015 05:01 PM, Peter Chen wrote:
>>>> On Thu, Apr 16, 2015 at 04:59:31PM +0900, Chanwoo Choi wrote:
>>>>> On 04/16/2015 04:13 PM, Ivan T. Ivanov wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On Thu, 2015-04-16 at 16:00 +0900, Chanwoo Choi wrote:
>>>>>>> Hi Peter,
>>>>>>>
>>>>>>> On 04/16/2015 10:59 AM, Peter Chen wrote:
>>>>>>>>
>>>>>>
>>>>>>>> Ok, from USB point, external id/vbus value can't decide
>>>>>>>> which role the controller will be, the controller driver
>>>>>>>> will decide role according to many things, eg, user configurations,
>>>>>>>> id/vbus value, OTG HNP, etc.
>>>>>>>>
>>>>>>>> So, from USB controller/phy driver, it doesn't care which cable is
>>>>>>>> inserted, it cares about id/vbus value. Eg, it can get id/vbus value
>>>>>>>> and it will be notified when the id/vbus value has changed.
>>>>>>>
>>>>>>> OK, I change the notifier name and add notifier events as following:
>>>>>>>
>>>>>>> - extcon_{register|unregister}_usb_notifier(struct extcon_dev *edev, struct notifier_block *nb);
>>>>>>> - list of notifier events
>>>>>>> #define EXTCON_USB_ID_L_VBUS_L0 /* ID low and VBUS low */
>>>>>>> #define EXTCON_USB_ID_L_VBUS_H1 /* ID low and VBUS high */
>>>>>>> #define EXTCON_USB_ID_H_VBUS_L2 /* ID high and VBUS low */
>>>>>>> #define EXTCON_USB_ID_H_VBUS_H3 /* ID high and VBUS high */
>>>>>>
>>>>>> I am still confused, why we mix ID and VBUS events into one?
>>>>>> Those are two lines and they are not necessarily handled by
>>>>>> the same extcon_dev.
>>>>>
>>>>> IMO, if some usb driver check both id and vbus pin at the same time,
>>>>> the usb driver can know the both id and vbus pin state through only one notifier event.
>>>>>
>>>>> Also,
>>>>> If some usb driver want to know the state of id pin except of vbus state,
>>>>> when receiving following events, id pin is low.
>>>>> #define EXTCON_USB_ID_L_VBUS_L0
>>>>> #define EXTCON_USB_ID_L_VBUS_H1
>>>>> when receiving following events, id pin is high.
>>>>> #define EXTCON_USB_ID_H_VBUS_L2
>>>>> #define EXTCON_USB_ID_H_VBUS_H3
>>>>> Also, some usb driver would catch the vbus pin state with same method.
>>>>>
>>>>> But, it is just my opinion. We may use following notifier events for each pin.
>>>>> We need to discuss it.
>>>>> #define EXTCON_USB_ID_LOW
>>>>> #define EXTCON_USB_ID_HIGH
>>>>> #define EXTCON_USB_VBUS_LOW
>>>>> #define EXTCON_USB_VBUS_HIGH
>>>>>
>>>>
>>>> I agree with above definition.
>>>>
>>>
>>> OK. I understand.
>>>
>>>
>> Chanwoo, Robert,
>>
>
> Hi Roger,
>
>> Do we have an agreement on a common solution then?
>
> Yes.
>
>> IMO the above mentioned 4 notifier events should meet all our USB needs.
>
> I'll support usb notifier chain which includes 4 notifier events.

Great, then Robert can base his patches on that. Thanks.

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/