2013-09-10 07:49:40

by George Cherian

[permalink] [raw]
Subject: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
This causes a VBUS interrupt, ignore the same if we are already in
USB-HOST.

Signed-off-by: George Cherian <[email protected]>
---
drivers/extcon/extcon-palmas.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
index 9672f31..91b31af 100644
--- a/drivers/extcon/extcon-palmas.c
+++ b/drivers/extcon/extcon-palmas.c
@@ -50,6 +50,9 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
struct palmas_usb *palmas_usb = _palmas_usb;
unsigned int vbus_line_state;

+ if (palmas_usb->linkstat == PALMAS_USB_STATE_ID)
+ return IRQ_HANDLED;
+
palmas_read(palmas_usb->palmas, PALMAS_INTERRUPT_BASE,
PALMAS_INT3_LINE_STATE, &vbus_line_state);

--
1.8.1.4


2013-09-10 08:25:11

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

Hi,

On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
> This causes a VBUS interrupt, ignore the same if we are already in
> USB-HOST.

You'll get VBUS interrupt when detaching USB-HOST cable also no? (because you
do a regulator disable to SMPS10).

Thanks
Kishon

2013-09-10 08:31:38

by George Cherian

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

On 9/10/2013 1:54 PM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
>> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
>> This causes a VBUS interrupt, ignore the same if we are already in
>> USB-HOST.
> You'll get VBUS interrupt when detaching USB-HOST cable also no? (because you
> do a regulator disable to SMPS10).
Yes since we are ignoring the previous interrupt(for attach), the detach
is accounted as a spurious one.
If we dont igonre the attach then the USB is set to true, which is wrong.
>
> Thanks
> Kishon


--
-George

2013-09-10 08:33:18

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

On Tuesday 10 September 2013 02:01 PM, George Cherian wrote:
> On 9/10/2013 1:54 PM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
>>> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
>>> This causes a VBUS interrupt, ignore the same if we are already in
>>> USB-HOST.
>> You'll get VBUS interrupt when detaching USB-HOST cable also no? (because you
>> do a regulator disable to SMPS10).
> Yes since we are ignoring the previous interrupt(for attach), the detach is
> accounted as a spurious one.
> If we dont igonre the attach then the USB is set to true, which is wrong.

Alright, thanks.

-Kishon

2013-09-10 08:57:57

by Laxman Dewangan

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
> This causes a VBUS interrupt, ignore the same if we are already in
> USB-HOST.
>
> Signed-off-by: George Cherian <[email protected]>
> ---
> drivers/extcon/extcon-palmas.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> index 9672f31..91b31af 100644
> --- a/drivers/extcon/extcon-palmas.c
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -50,6 +50,9 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
> struct palmas_usb *palmas_usb = _palmas_usb;
> unsigned int vbus_line_state;
>
> + if (palmas_usb->linkstat == PALMAS_USB_STATE_ID)
> + return IRQ_HANDLED;
> +

Should we really handle this on this extcon driver? I think it should be
handled in the USB driver. If port is OTG type and if usb driver enable
the VBUS then it can expect the VBUS available notification but based on
the USB driver state, it should ignore this notification.

Otherwise, Palmas pin find that there is VBUS state true but the SW
status will show as the VBUS not there.

2013-09-10 11:58:08

by George Cherian

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

On 9/10/2013 2:47 PM, Laxman Dewangan wrote:
> On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
>> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
>> This causes a VBUS interrupt, ignore the same if we are already in
>> USB-HOST.
>>
>> Signed-off-by: George Cherian <[email protected]>
>> ---
>> drivers/extcon/extcon-palmas.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/extcon/extcon-palmas.c
>> b/drivers/extcon/extcon-palmas.c
>> index 9672f31..91b31af 100644
>> --- a/drivers/extcon/extcon-palmas.c
>> +++ b/drivers/extcon/extcon-palmas.c
>> @@ -50,6 +50,9 @@ static irqreturn_t palmas_vbus_irq_handler(int irq,
>> void *_palmas_usb)
>> struct palmas_usb *palmas_usb = _palmas_usb;
>> unsigned int vbus_line_state;
>> + if (palmas_usb->linkstat == PALMAS_USB_STATE_ID)
>> + return IRQ_HANDLED;
>> +
>
> Should we really handle this on this extcon driver? I think it should
> be handled in the USB driver. If port is OTG type and if usb driver
> enable the VBUS then it can expect the VBUS available notification but
> based on the USB driver state, it should ignore this notification.
>
Correct extcon should just notify and the consumer should take
appropriate decision.
> Otherwise, Palmas pin find that there is VBUS state true but the SW
> status will show as the VBUS not there.
>


--
-George

2013-09-10 12:05:18

by Laxman Dewangan

[permalink] [raw]
Subject: Re: [PATCH] extcon: palmas: Dont set USB state if ID pin is grounded

On Tuesday 10 September 2013 05:27 PM, George Cherian wrote:
> On 9/10/2013 2:47 PM, Laxman Dewangan wrote:
>> On Tuesday 10 September 2013 01:19 PM, George Cherian wrote:
>>> In OMAP5 when USB-HOST is set true, the VBUS regulator is turned ON.
>>> This causes a VBUS interrupt, ignore the same if we are already in
>>> USB-HOST.
>>>
>>> Signed-off-by: George Cherian <[email protected]>
>>> ---
>>> drivers/extcon/extcon-palmas.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/extcon/extcon-palmas.c
>>> b/drivers/extcon/extcon-palmas.c
>>> index 9672f31..91b31af 100644
>>> --- a/drivers/extcon/extcon-palmas.c
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -50,6 +50,9 @@ static irqreturn_t palmas_vbus_irq_handler(int irq,
>>> void *_palmas_usb)
>>> struct palmas_usb *palmas_usb = _palmas_usb;
>>> unsigned int vbus_line_state;
>>> + if (palmas_usb->linkstat == PALMAS_USB_STATE_ID)
>>> + return IRQ_HANDLED;
>>> +
>> Should we really handle this on this extcon driver? I think it should
>> be handled in the USB driver. If port is OTG type and if usb driver
>> enable the VBUS then it can expect the VBUS available notification but
>> based on the USB driver state, it should ignore this notification.
>>
> Correct extcon should just notify and the consumer should take
> appropriate decision.

Thanks, so our code design is same as yours and so we will not need this
patch.


>> Otherwise, Palmas pin find that there is VBUS state true but the SW
>> status will show as the VBUS not there.
>>
>