Re: [PATCH] extcon: Add support for qcom SPMI PMIC USB id detection hardware

From: Stephen Boyd
Date: Mon Jun 27 2016 - 15:31:57 EST


Quoting Roger Quadros (2016-06-27 00:39:51)
> Hi Stephen,
>
> On 26/06/16 08:56, Stephen Boyd wrote:
> > Some Qualcomm PMICs have a misc device that performs USB id pin
> > detection via an interrupt. When the interrupt triggers, we
> > should read the interrupt line to see if it has gone high or low.
> > If the interrupt is low then the ID pin is grounded, and if the
> > interrupt is high then the ID pin is being held high.
>
> Does this depend on any other drivers to configure the USB ID
> interrupt or it works automatically once the interrupt is enabled?

No other configuration is required as far as I know.

>
> >
> > Cc: Roger Quadros <rogerq@xxxxxx>
> > Cc: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> > Signed-off-by: Stephen Boyd <stephen.boyd@xxxxxxxxxx>
> > ---
> > .../bindings/extcon/qcom,pm8941-misc.txt | 41 +++++
> > drivers/extcon/Kconfig | 6 +
> > drivers/extcon/Makefile | 1 +
> > drivers/extcon/extcon-qcom-spmi-misc.c | 170 +++++++++++++++++++++
>
> Should we make this driver more generic so that it can support
> any other platforms as well that can give USB ID over interrupt.

I don't see a problem with that, but can that wait until we gain another
user? I'd rather not make something generic when we only have one user.

>
> What about USB_VBUS? How is that delivered?

The VBUS notification is done through another piece of hardware. In this
case it's done by the charger module. I've sent a patch for that[1].

> > diff --git a/drivers/extcon/Makefile b/drivers/extcon/Makefile
> > index 2a0e4f45d5b2..8cf6eb068d34 100644
> > --- a/drivers/extcon/Makefile
> > +++ b/drivers/extcon/Makefile
> > @@ -15,4 +15,5 @@ obj-$(CONFIG_EXTCON_MAX8997) += extcon-max8997.o
> > obj-$(CONFIG_EXTCON_PALMAS) += extcon-palmas.o
> > obj-$(CONFIG_EXTCON_RT8973A) += extcon-rt8973a.o
> > obj-$(CONFIG_EXTCON_SM5502) += extcon-sm5502.o
> > +obj-$(CONFIG_EXTCON_QCOM_SPMI_MISC) += extcon-qcom-spmi-misc.o
> > obj-$(CONFIG_EXTCON_USB_GPIO) += extcon-usb-gpio.o
> > diff --git a/drivers/extcon/extcon-qcom-spmi-misc.c b/drivers/extcon/extcon-qcom-spmi-misc.c
> > new file mode 100644
> > index 000000000000..f0ec6f1541e1
> > --- /dev/null
> > +++ b/drivers/extcon/extcon-qcom-spmi-misc.c
> > @@ -0,0 +1,170 @@
> > +/**
> > + * Based on extcon-usb-gpio.c
> > + *
> > + * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com
> > + * Author: Roger Quadros <rogerq@xxxxxx>
>
> You don't need to carry the original (C) here.

Ok I'll drop those two lines. Thanks.

[1] http://lkml.kernel.org/g/20160626055437.18516-1-stephen.boyd@xxxxxxxxxx