1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig EXTCON
3	tristate "External Connector Class (extcon) support"
4	help
5	  Say Y here to enable external connector class (extcon) support.
6	  This allows monitoring external connectors by userspace
7	  via sysfs and uevent and supports external connectors with
8	  multiple states; i.e., an extcon that may have multiple
9	  cables attached. For example, an external connector of a device
10	  may be used to connect an HDMI cable and a AC adaptor, and to
11	  host USB ports. Many of 30-pin connectors including PDMI are
12	  also good examples.
13
14if EXTCON
15
16comment "Extcon Device Drivers"
17
18config EXTCON_ADC_JACK
19	tristate "ADC Jack extcon support"
20	depends on IIO
21	help
22	  Say Y here to enable extcon device driver based on ADC values.
23
24config EXTCON_AXP288
25	tristate "X-Power AXP288 EXTCON support"
26	depends on MFD_AXP20X && USB_SUPPORT && X86 && ACPI && IOSF_MBI
27	select USB_ROLE_SWITCH
28	help
29	  Say Y here to enable support for USB peripheral detection
30	  and USB MUX switching by X-Power AXP288 PMIC.
31
32config EXTCON_FSA9480
33	tristate "FSA9480 EXTCON Support"
34	depends on INPUT && I2C
35	select IRQ_DOMAIN
36	select REGMAP_I2C
37	help
38	  If you say yes here you get support for the Fairchild Semiconductor
39	  FSA9480 microUSB switch and accessory detector chip. The FSA9480 is a USB
40	  port accessory detector and switch. The FSA9480 is fully controlled using
41	  I2C and enables USB data, stereo and mono audio, video, microphone
42	  and UART data to use a common connector port.
43
44config EXTCON_GPIO
45	tristate "GPIO extcon support"
46	depends on GPIOLIB || COMPILE_TEST
47	help
48	  Say Y here to enable GPIO based extcon support. Note that GPIO
49	  extcon supports single state per extcon instance.
50
51config EXTCON_INTEL_INT3496
52	tristate "Intel INT3496 ACPI device extcon driver"
53	depends on GPIOLIB && ACPI && (X86 || COMPILE_TEST)
54	help
55	  Say Y here to enable extcon support for USB OTG ports controlled by
56	  an Intel INT3496 ACPI device.
57
58	  This ACPI device is typically found on Intel Baytrail or Cherrytrail
59	  based tablets, or other Baytrail / Cherrytrail devices.
60
61config EXTCON_INTEL_CHT_WC
62	tristate "Intel Cherrytrail Whiskey Cove PMIC extcon driver"
63	depends on INTEL_SOC_PMIC_CHTWC
64	depends on USB_SUPPORT
65	select USB_ROLE_SWITCH
66	help
67	  Say Y here to enable extcon support for charger detection / control
68	  on the Intel Cherrytrail Whiskey Cove PMIC.
69
70config EXTCON_INTEL_MRFLD
71	tristate "Intel Merrifield Basin Cove PMIC extcon driver"
72	depends on INTEL_SOC_PMIC_MRFLD
73	help
74	  Say Y here to enable extcon support for charger detection / control
75	  on the Intel Merrifield Basin Cove PMIC.
76
77config EXTCON_MAX14577
78	tristate "Maxim MAX14577/77836 EXTCON Support"
79	depends on MFD_MAX14577
80	select IRQ_DOMAIN
81	select REGMAP_I2C
82	help
83	  If you say yes here you get support for the MUIC device of
84	  Maxim MAX14577/77836. The MAX14577/77836 MUIC is a USB port accessory
85	  detector and switch.
86
87config EXTCON_MAX3355
88	tristate "Maxim MAX3355 USB OTG EXTCON Support"
89	depends on GPIOLIB || COMPILE_TEST
90	help
91	  If you say yes here you get support for the USB OTG role detection by
92	  MAX3355. The MAX3355 chip integrates a charge pump and comparators to
93	  enable a system with an integrated USB OTG dual-role transceiver to
94	  function as an USB OTG dual-role device.
95
96config EXTCON_MAX77693
97	tristate "Maxim MAX77693 EXTCON Support"
98	depends on MFD_MAX77693 && INPUT
99	select IRQ_DOMAIN
100	select REGMAP_I2C
101	help
102	  If you say yes here you get support for the MUIC device of
103	  Maxim MAX77693 PMIC. The MAX77693 MUIC is a USB port accessory
104	  detector and switch.
105
106config EXTCON_MAX77843
107	tristate "Maxim MAX77843 EXTCON Support"
108	depends on MFD_MAX77843
109	select IRQ_DOMAIN
110	select REGMAP_I2C
111	help
112	  If you say yes here you get support for the MUIC device of
113	  Maxim MAX77843. The MAX77843 MUIC is a USB port accessory
114	  detector add switch.
115
116config EXTCON_MAX8997
117	tristate "Maxim MAX8997 EXTCON Support"
118	depends on MFD_MAX8997 && IRQ_DOMAIN
119	help
120	  If you say yes here you get support for the MUIC device of
121	  Maxim MAX8997 PMIC. The MAX8997 MUIC is a USB port accessory
122	  detector and switch.
123
124config EXTCON_PALMAS
125	tristate "Palmas USB EXTCON support"
126	depends on MFD_PALMAS
127	help
128	  Say Y here to enable support for USB peripheral and USB host
129	  detection by palmas usb.
130
131config EXTCON_PTN5150
132	tristate "NXP PTN5150 CC LOGIC USB EXTCON support"
133	depends on I2C && (GPIOLIB || COMPILE_TEST)
134	depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
135	select REGMAP_I2C
136	help
137	  Say Y here to enable support for USB peripheral and USB host
138	  detection by NXP PTN5150 CC (Configuration Channel) logic chip.
139
140config EXTCON_QCOM_SPMI_MISC
141	tristate "Qualcomm USB extcon support"
142	depends on ARCH_QCOM || COMPILE_TEST
143	help
144	  Say Y here to enable SPMI PMIC based USB cable detection
145	  support on Qualcomm PMICs such as PM8941.
146
147config EXTCON_RT8973A
148	tristate "Richtek RT8973A EXTCON support"
149	depends on I2C
150	select IRQ_DOMAIN
151	select REGMAP_I2C
152	select REGMAP_IRQ
153	help
154	  If you say yes here you get support for the MUIC device of
155	  Richtek RT8973A. The RT8973A is a USB port accessory detector
156	  and switch that is optimized to protect low voltage system
157	  from abnormal high input voltage (up to 28V).
158
159config EXTCON_SM5502
160	tristate "Silicon Mitus SM5502/SM5504/SM5703 EXTCON support"
161	depends on I2C
162	select IRQ_DOMAIN
163	select REGMAP_I2C
164	select REGMAP_IRQ
165	help
166	  If you say yes here you get support for the MUIC device of
167	  Silicon Mitus SM5502. The SM5502 is a USB port accessory
168	  detector and switch.
169
170config EXTCON_USB_GPIO
171	tristate "USB GPIO extcon support"
172	depends on GPIOLIB || COMPILE_TEST
173	help
174	  Say Y here to enable GPIO based USB cable detection extcon support.
175	  Used typically if GPIO is used for USB ID pin detection.
176
177config EXTCON_USBC_CROS_EC
178	tristate "ChromeOS Embedded Controller EXTCON support"
179	depends on CROS_EC
180	help
181	  Say Y here to enable USB Type C cable detection extcon support when
182	  using Chrome OS EC based USB Type-C ports.
183
184config EXTCON_USBC_TUSB320
185	tristate "TI TUSB320 USB-C extcon support"
186	depends on I2C && TYPEC
187	select REGMAP_I2C
188	help
189	  Say Y here to enable support for USB Type C cable detection extcon
190	  support using a TUSB320.
191
192endif
193