Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750943AbbD3HdF (ORCPT ); Thu, 30 Apr 2015 03:33:05 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:52723 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750737AbbD3HdC (ORCPT ); Thu, 30 Apr 2015 03:33:02 -0400 Message-ID: <5541DAA0.7030200@ti.com> Date: Thu, 30 Apr 2015 10:32:48 +0300 From: Roger Quadros User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Chanwoo Choi , Peter Chen , Robert Baldyga CC: "Ivan T. Ivanov" , "Balbi, Felipe" , "ABRAHAM, KISHON VIJAY" , , , , , Subject: Re: [PATCH v3 2/4] extcon: usb-gpio: add support for VBUS detection References: <552CEC97.1050205@samsung.com> <552CEE42.1050907@ti.com> <552CFA1E.5070400@samsung.com> <20150415032734.GA29095@shlinux2> <552E1862.6090709@ti.com> <552E2EBF.5090906@samsung.com> <20150416015922.GB22269@shlinux2> <552F5E17.5020902@samsung.com> <1429168424.26621.1.camel@mm-sol.com> <552F6BE3.5080604@samsung.com> <20150416080107.GC1709@shlinux2> <552F724A.1050500@samsung.com> In-Reply-To: <552F724A.1050500@samsung.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2832 Lines: 74 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, Do we have an agreement on a common solution then? IMO the above mentioned 4 notifier events should meet all our USB needs. cheers, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/