mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 10:01:43 +00:00
d54f063cdb
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>
162 lines
5.0 KiB
Plaintext
162 lines
5.0 KiB
Plaintext
menuconfig EXTCON
|
|
tristate "External Connector Class (extcon) support"
|
|
help
|
|
Say Y here to enable external connector class (extcon) support.
|
|
This allows monitoring external connectors by userspace
|
|
via sysfs and uevent and supports external connectors with
|
|
multiple states; i.e., an extcon that may have multiple
|
|
cables attached. For example, an external connector of a device
|
|
may be used to connect an HDMI cable and a AC adaptor, and to
|
|
host USB ports. Many of 30-pin connectors including PDMI are
|
|
also good examples.
|
|
|
|
if EXTCON
|
|
|
|
comment "Extcon Device Drivers"
|
|
|
|
config EXTCON_ADC_JACK
|
|
tristate "ADC Jack extcon support"
|
|
depends on IIO
|
|
help
|
|
Say Y here to enable extcon device driver based on ADC values.
|
|
|
|
config EXTCON_ARIZONA
|
|
tristate "Wolfson Arizona EXTCON support"
|
|
depends on MFD_ARIZONA && INPUT && SND_SOC
|
|
help
|
|
Say Y here to enable support for external accessory detection
|
|
with Wolfson Arizona devices. These are audio CODECs with
|
|
advanced audio accessory detection support.
|
|
|
|
config EXTCON_AXP288
|
|
tristate "X-Power AXP288 EXTCON support"
|
|
depends on MFD_AXP20X && USB_SUPPORT && X86
|
|
select USB_ROLE_SWITCH
|
|
help
|
|
Say Y here to enable support for USB peripheral detection
|
|
and USB MUX switching by X-Power AXP288 PMIC.
|
|
|
|
config EXTCON_GPIO
|
|
tristate "GPIO extcon support"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
help
|
|
Say Y here to enable GPIO based extcon support. Note that GPIO
|
|
extcon supports single state per extcon instance.
|
|
|
|
config EXTCON_INTEL_INT3496
|
|
tristate "Intel INT3496 ACPI device extcon driver"
|
|
depends on GPIOLIB && ACPI && (X86 || COMPILE_TEST)
|
|
help
|
|
Say Y here to enable extcon support for USB OTG ports controlled by
|
|
an Intel INT3496 ACPI device.
|
|
|
|
This ACPI device is typically found on Intel Baytrail or Cherrytrail
|
|
based tablets, or other Baytrail / Cherrytrail devices.
|
|
|
|
config EXTCON_INTEL_CHT_WC
|
|
tristate "Intel Cherrytrail Whiskey Cove PMIC extcon driver"
|
|
depends on INTEL_SOC_PMIC_CHTWC
|
|
help
|
|
Say Y here to enable extcon support for charger detection / control
|
|
on the Intel Cherrytrail Whiskey Cove PMIC.
|
|
|
|
config EXTCON_MAX14577
|
|
tristate "Maxim MAX14577/77836 EXTCON Support"
|
|
depends on MFD_MAX14577
|
|
select IRQ_DOMAIN
|
|
select REGMAP_I2C
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Maxim MAX14577/77836. The MAX14577/77836 MUIC is a USB port accessory
|
|
detector and switch.
|
|
|
|
config EXTCON_MAX3355
|
|
tristate "Maxim MAX3355 USB OTG EXTCON Support"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
help
|
|
If you say yes here you get support for the USB OTG role detection by
|
|
MAX3355. The MAX3355 chip integrates a charge pump and comparators to
|
|
enable a system with an integrated USB OTG dual-role transceiver to
|
|
function as an USB OTG dual-role device.
|
|
|
|
config EXTCON_MAX77693
|
|
tristate "Maxim MAX77693 EXTCON Support"
|
|
depends on MFD_MAX77693 && INPUT
|
|
select IRQ_DOMAIN
|
|
select REGMAP_I2C
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Maxim MAX77693 PMIC. The MAX77693 MUIC is a USB port accessory
|
|
detector and switch.
|
|
|
|
config EXTCON_MAX77843
|
|
tristate "Maxim MAX77843 EXTCON Support"
|
|
depends on MFD_MAX77843
|
|
select IRQ_DOMAIN
|
|
select REGMAP_I2C
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Maxim MAX77843. The MAX77843 MUIC is a USB port accessory
|
|
detector add switch.
|
|
|
|
config EXTCON_MAX8997
|
|
tristate "Maxim MAX8997 EXTCON Support"
|
|
depends on MFD_MAX8997 && IRQ_DOMAIN
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Maxim MAX8997 PMIC. The MAX8997 MUIC is a USB port accessory
|
|
detector and switch.
|
|
|
|
config EXTCON_PALMAS
|
|
tristate "Palmas USB EXTCON support"
|
|
depends on MFD_PALMAS
|
|
help
|
|
Say Y here to enable support for USB peripheral and USB host
|
|
detection by palmas usb.
|
|
|
|
config EXTCON_QCOM_SPMI_MISC
|
|
tristate "Qualcomm USB extcon support"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
help
|
|
Say Y here to enable SPMI PMIC based USB cable detection
|
|
support on Qualcomm PMICs such as PM8941.
|
|
|
|
config EXTCON_RT8973A
|
|
tristate "Richtek RT8973A EXTCON support"
|
|
depends on I2C
|
|
select IRQ_DOMAIN
|
|
select REGMAP_I2C
|
|
select REGMAP_IRQ
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Richtek RT8973A. The RT8973A is a USB port accessory detector
|
|
and switch that is optimized to protect low voltage system
|
|
from abnormal high input voltage (up to 28V).
|
|
|
|
config EXTCON_SM5502
|
|
tristate "Silicon Mitus SM5502 EXTCON support"
|
|
depends on I2C
|
|
select IRQ_DOMAIN
|
|
select REGMAP_I2C
|
|
select REGMAP_IRQ
|
|
help
|
|
If you say yes here you get support for the MUIC device of
|
|
Silicon Mitus SM5502. The SM5502 is a USB port accessory
|
|
detector and switch.
|
|
|
|
config EXTCON_USB_GPIO
|
|
tristate "USB GPIO extcon support"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
help
|
|
Say Y here to enable GPIO based USB cable detection extcon support.
|
|
Used typically if GPIO is used for USB ID pin detection.
|
|
|
|
config EXTCON_USBC_CROS_EC
|
|
tristate "ChromeOS Embedded Controller EXTCON support"
|
|
depends on MFD_CROS_EC
|
|
help
|
|
Say Y here to enable USB Type C cable detection extcon support when
|
|
using Chrome OS EC based USB Type-C ports.
|
|
|
|
endif
|