Hi, On Thu, Mar 16, 2017 at 05:17:36PM +0100, Hans de Goede wrote: > On some devices with an axp288 pmic setting vbus path based on the > id-pin is handled by an ACPI _AIE interrupt on the gpio and the > INT3496 device is disabled. > > Instead of returning -EPROBE_DEFER on these devices waiting for the > never to show up INT3496 device, check for its presence and only > request and monitor the matching extcon if the device is there, > otherwise let the firmware handle the vbus path control. > > Signed-off-by: Hans de Goede > --- > drivers/power/supply/axp288_charger.c | 24 +++++++++++++++--------- > 1 file changed, 15 insertions(+), 9 deletions(-) > > diff --git a/drivers/power/supply/axp288_charger.c b/drivers/power/supply/axp288_charger.c > index d3bf4b2..6c4ad66 100644 > --- a/drivers/power/supply/axp288_charger.c > +++ b/drivers/power/supply/axp288_charger.c > @@ -14,6 +14,7 @@ > * GNU General Public License for more details. > */ > > +#include > #include > #include > #include > @@ -114,7 +115,8 @@ > #define ILIM_3000MA 3000 /* 3000mA */ > > #define AXP288_EXTCON_DEV_NAME "axp288_extcon" > -#define USB_HOST_EXTCON_DEV_NAME "INT3496:00" > +#define USB_HOST_EXTCON_HID "INT3496" > +#define USB_HOST_EXTCON_NAME "INT3496:00" > > static const unsigned int cable_ids[] = > { EXTCON_CHG_USB_SDP, EXTCON_CHG_USB_CDP, EXTCON_CHG_USB_DCP }; > @@ -808,10 +810,12 @@ static int axp288_charger_probe(struct platform_device *pdev) > return -EPROBE_DEFER; > } > > - info->otg.cable = extcon_get_extcon_dev(USB_HOST_EXTCON_DEV_NAME); > - if (info->otg.cable == NULL) { > - dev_dbg(dev, "EXTCON_USB_HOST is not ready, probe deferred\n"); > - return -EPROBE_DEFER; > + if (acpi_dev_present(USB_HOST_EXTCON_HID)) { I may have missed something, but as far as I can see axp288 also supports DT based init, so that should be handled here. -- Sebastian