linux/drivers/extcon
Hans de Goede d54f063cdb extcon: axp288: Set USB role where necessary
The AXP288 BC1.2 charger detection / extcon code may seem like a strange
place to add code to control the USB role-switch on devices with an AXP288,
but there are 2 reasons to do this inside the axp288 extcon code:

1) On many devices the USB role is controlled by ACPI AML code, but the AML
   code only switches between the host and none roles, because of Windows
   not really using device mode. To make device mode work we need to toggle
   between the none/device roles based on Vbus presence, and the axp288
   extcon gets interrupts on Vbus insertion / removal.

2) In order for our BC1.2 charger detection to work properly the role
   mux must be properly set to device mode before we do the detection.

Also note the Kconfig help-text / obsolete depends on USB_PHY which are
remnants from older never upstreamed code also controlling the mux from
the axp288 extcon code.

This commit also adds code to get notifications from the INT3496 extcon
device, which is used on some devices to notify the kernel about id-pin
changes instead of them being handled through AML code.

This fixes:
-Device mode not working on most CHT devices with an AXP288
-Host mode not working on devices with an INT3496 ACPI device
-Charger-type misdetection (always SDP) on devices with an INT3496 when the
 USB role (always) gets initialized as host

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-22 13:49:28 +01:00
..
devres.c extcon: Correct description to improve the readability 2017-08-16 09:27:55 +09:00
extcon-adc-jack.c extcon: adc-jack: Fix platform_get_irq's error checking 2017-11-27 10:23:47 +09:00
extcon-arizona.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-axp288.c extcon: axp288: Set USB role where necessary 2018-03-22 13:49:28 +01:00
extcon-gpio.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-intel-cht-wc.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-intel-int3496.c extcon: int3496: process id-pin first so that we start with the right status 2018-02-14 06:37:33 +09:00
extcon-max3355.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-max8997.c extcon: max8997: Delete unneeded initialization in max8997_muic_set_path() 2017-11-27 10:23:47 +09:00
extcon-max14577.c extcon: max14577: Delete an unnecessary variable initialisation in max14577_muic_set_path() 2017-10-23 14:10:26 +09:00
extcon-max77693.c extcon: max77693: Delete unneeded initialization in max77693_muic_set_path() 2017-11-27 10:23:47 +09:00
extcon-max77843.c extcon: max77843: Add support for SmartDock accessory 2017-10-24 09:48:54 +09:00
extcon-palmas.c extcon: palmas: Don't miss GPIO events during suspend/resume 2017-04-06 10:55:22 +09:00
extcon-qcom-spmi-misc.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-rt8973a.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-rt8973a.h extcon: rt8973a: Add Richtek RT8973A extcon driver 2014-09-22 11:43:08 +09:00
extcon-sm5502.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-sm5502.h extcon: sm5502: Move sm5502.h header file to extcon directory 2014-09-22 11:43:08 +09:00
extcon-usb-gpio.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
extcon-usbc-cros-ec.c extcon: usbc-cros-ec: add support to notify USB type cables. 2017-12-15 17:21:49 +09:00
extcon.c extcon: make extcon_info static const, fixes warning 2017-10-23 14:10:25 +09:00
extcon.h USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
Kconfig extcon: axp288: Set USB role where necessary 2018-03-22 13:49:28 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00