Lines Matching full:arizona
3 * extcon-arizona.c - Extcon driver Wolfson Arizona devices
25 #include <linux/mfd/arizona/core.h>
26 #include <linux/mfd/arizona/pdata.h>
27 #include <linux/mfd/arizona/registers.h>
28 #include <dt-bindings/mfd/arizona.h>
66 struct arizona *arizona; member
143 struct arizona *arizona = info->arizona; in arizona_extcon_hp_clamp() local
148 switch (arizona->type) { in arizona_extcon_hp_clamp()
165 ret = regmap_update_bits(arizona->regmap, in arizona_extcon_hp_clamp()
170 dev_warn(arizona->dev, in arizona_extcon_hp_clamp()
180 snd_soc_dapm_mutex_lock(arizona->dapm); in arizona_extcon_hp_clamp()
182 arizona->hpdet_clamp = clamp; in arizona_extcon_hp_clamp()
186 ret = regmap_update_bits(arizona->regmap, in arizona_extcon_hp_clamp()
191 dev_warn(arizona->dev, in arizona_extcon_hp_clamp()
197 ret = regmap_update_bits(arizona->regmap, ARIZONA_HP_CTRL_1L, in arizona_extcon_hp_clamp()
200 dev_warn(arizona->dev, "Failed to do clamp: %d\n", in arizona_extcon_hp_clamp()
203 ret = regmap_update_bits(arizona->regmap, ARIZONA_HP_CTRL_1R, in arizona_extcon_hp_clamp()
206 dev_warn(arizona->dev, "Failed to do clamp: %d\n", in arizona_extcon_hp_clamp()
212 ret = regmap_update_bits(arizona->regmap, in arizona_extcon_hp_clamp()
215 ARIZONA_OUT1R_ENA, arizona->hp_ena); in arizona_extcon_hp_clamp()
217 dev_warn(arizona->dev, in arizona_extcon_hp_clamp()
222 snd_soc_dapm_mutex_unlock(arizona->dapm); in arizona_extcon_hp_clamp()
227 struct arizona *arizona = info->arizona; in arizona_extcon_set_mode() local
234 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_set_mode()
238 regmap_update_bits(arizona->regmap, ARIZONA_ACCESSORY_DETECT_MODE_1, in arizona_extcon_set_mode()
243 dev_dbg(arizona->dev, "Set jack polarity to %d\n", mode); in arizona_extcon_set_mode()
262 struct arizona *arizona = info->arizona; in arizona_extcon_pulse_micbias() local
264 struct snd_soc_dapm_context *dapm = arizona->dapm; in arizona_extcon_pulse_micbias()
270 dev_warn(arizona->dev, "Failed to enable %s: %d\n", in arizona_extcon_pulse_micbias()
275 if (!arizona->pdata.micd_force_micbias) { in arizona_extcon_pulse_micbias()
278 dev_warn(arizona->dev, "Failed to disable %s: %d\n", in arizona_extcon_pulse_micbias()
287 struct arizona *arizona = info->arizona; in arizona_start_mic() local
298 dev_err(arizona->dev, in arizona_start_mic()
306 dev_err(arizona->dev, "Failed to enable MICVDD: %d\n", in arizona_start_mic()
317 regmap_multi_reg_write(arizona->regmap, reva, ARRAY_SIZE(reva)); in arizona_start_mic()
320 if (info->detecting && arizona->pdata.micd_software_compare) in arizona_start_mic()
325 regmap_update_bits(arizona->regmap, in arizona_start_mic()
331 ret = regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_start_mic()
335 dev_err(arizona->dev, "Failed to enable micd: %d\n", ret); in arizona_start_mic()
344 struct arizona *arizona = info->arizona; in arizona_stop_mic() local
346 struct snd_soc_dapm_context *dapm = arizona->dapm; in arizona_stop_mic()
351 ret = regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_stop_mic()
355 dev_err(arizona->dev, "Failed to disable micd: %d\n", ret); in arizona_stop_mic()
359 dev_warn(arizona->dev, in arizona_stop_mic()
372 regmap_multi_reg_write(arizona->regmap, reva, ARRAY_SIZE(reva)); in arizona_stop_mic()
377 dev_err(arizona->dev, "Failed to bypass MICVDD: %d\n", in arizona_stop_mic()
412 struct arizona *arizona = info->arizona; in arizona_hpdet_read() local
416 ret = regmap_read(arizona->regmap, ARIZONA_HEADPHONE_DETECT_2, &val); in arizona_hpdet_read()
418 dev_err(arizona->dev, "Failed to read HPDET status: %d\n", in arizona_hpdet_read()
426 dev_err(arizona->dev, "HPDET did not complete: %x\n", in arizona_hpdet_read()
436 dev_err(arizona->dev, "HPDET did not complete: %x\n", in arizona_hpdet_read()
441 ret = regmap_read(arizona->regmap, ARIZONA_HP_DACVAL, &val); in arizona_hpdet_read()
443 dev_err(arizona->dev, "Failed to read HP value: %d\n", in arizona_hpdet_read()
448 regmap_read(arizona->regmap, ARIZONA_HEADPHONE_DETECT_1, in arizona_hpdet_read()
457 dev_dbg(arizona->dev, "Moving to HPDET range %d\n", in arizona_hpdet_read()
459 regmap_update_bits(arizona->regmap, in arizona_hpdet_read()
470 dev_dbg(arizona->dev, "Measurement out of range\n"); in arizona_hpdet_read()
474 dev_dbg(arizona->dev, "HPDET read %d in range %d\n", in arizona_hpdet_read()
484 dev_err(arizona->dev, "HPDET did not complete: %x\n", in arizona_hpdet_read()
493 regmap_read(arizona->regmap, ARIZONA_HEADPHONE_DETECT_1, in arizona_hpdet_read()
502 dev_dbg(arizona->dev, "Moving to HPDET range %d-%d\n", in arizona_hpdet_read()
505 regmap_update_bits(arizona->regmap, in arizona_hpdet_read()
514 dev_dbg(arizona->dev, "Reporting range boundary %d\n", in arizona_hpdet_read()
521 dev_warn(arizona->dev, "Unknown HPDET IP revision %d\n", in arizona_hpdet_read()
526 dev_dbg(arizona->dev, "HP impedance %d ohms\n", val); in arizona_hpdet_read()
533 struct arizona *arizona = info->arizona; in arizona_hpdet_do_id() local
534 int id_gpio = arizona->pdata.hpdet_id_gpio; in arizona_hpdet_do_id()
536 if (!arizona->pdata.hpdet_acc_id) in arizona_hpdet_do_id()
547 dev_dbg(arizona->dev, "Measuring mic\n"); in arizona_hpdet_do_id()
549 regmap_update_bits(arizona->regmap, in arizona_hpdet_do_id()
558 regmap_update_bits(arizona->regmap, ARIZONA_HEADPHONE_DETECT_1, in arizona_hpdet_do_id()
564 dev_dbg(arizona->dev, "HPDET measured %d %d\n", in arizona_hpdet_do_id()
572 dev_dbg(arizona->dev, "Retrying high impedance\n"); in arizona_hpdet_do_id()
584 dev_dbg(arizona->dev, "Detected mic\n"); in arizona_hpdet_do_id()
588 dev_dbg(arizona->dev, "Detected headphone\n"); in arizona_hpdet_do_id()
592 regmap_update_bits(arizona->regmap, ARIZONA_ACCESSORY_DETECT_MODE_1, in arizona_hpdet_do_id()
601 struct arizona *arizona = info->arizona; in arizona_hpdet_irq() local
602 int id_gpio = arizona->pdata.hpdet_id_gpio; in arizona_hpdet_irq()
611 dev_warn(arizona->dev, "Spurious HPDET IRQ\n"); in arizona_hpdet_irq()
619 dev_err(arizona->dev, "Failed to check cable state: %d\n", in arizona_hpdet_irq()
623 dev_dbg(arizona->dev, "Ignoring HPDET for removed cable\n"); in arizona_hpdet_irq()
635 regmap_update_bits(arizona->regmap, in arizona_hpdet_irq()
654 dev_err(arizona->dev, "Failed to report HP/line: %d\n", in arizona_hpdet_irq()
659 regmap_update_bits(arizona->regmap, in arizona_hpdet_irq()
688 struct arizona *arizona = info->arizona; in arizona_identify_headphone() local
694 dev_dbg(arizona->dev, "Starting HPDET\n"); in arizona_identify_headphone()
705 ret = regmap_update_bits(arizona->regmap, in arizona_identify_headphone()
708 arizona->pdata.hpdet_channel); in arizona_identify_headphone()
710 dev_err(arizona->dev, "Failed to set HPDET mode: %d\n", ret); in arizona_identify_headphone()
714 ret = regmap_update_bits(arizona->regmap, ARIZONA_HEADPHONE_DETECT_1, in arizona_identify_headphone()
717 dev_err(arizona->dev, "Can't start HPDETL measurement: %d\n", in arizona_identify_headphone()
731 dev_err(arizona->dev, "Failed to report headphone: %d\n", ret); in arizona_identify_headphone()
741 struct arizona *arizona = info->arizona; in arizona_start_hpdet_acc_id() local
746 dev_dbg(arizona->dev, "Starting identification via HPDET\n"); in arizona_start_hpdet_acc_id()
755 ret = regmap_update_bits(arizona->regmap, in arizona_start_hpdet_acc_id()
759 arizona->pdata.hpdet_channel); in arizona_start_hpdet_acc_id()
761 dev_err(arizona->dev, "Failed to set HPDET mode: %d\n", ret); in arizona_start_hpdet_acc_id()
765 if (arizona->pdata.hpdet_acc_id_line) { in arizona_start_hpdet_acc_id()
766 ret = regmap_update_bits(arizona->regmap, in arizona_start_hpdet_acc_id()
770 dev_err(arizona->dev, in arizona_start_hpdet_acc_id()
785 dev_err(arizona->dev, "Failed to report headphone: %d\n", ret); in arizona_start_hpdet_acc_id()
798 dev_dbg(info->arizona->dev, "MICD timed out, reporting HP\n"); in arizona_micd_timeout_work()
809 struct arizona *arizona = info->arizona; in arizona_micd_adc_read() local
814 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_micd_adc_read()
817 ret = regmap_read(arizona->regmap, ARIZONA_MIC_DETECT_4, &val); in arizona_micd_adc_read()
819 dev_err(arizona->dev, in arizona_micd_adc_read()
824 dev_dbg(arizona->dev, "MICDET_ADCVAL: %x\n", val); in arizona_micd_adc_read()
846 struct arizona *arizona = info->arizona; in arizona_micd_read() local
851 ret = regmap_read(arizona->regmap, ARIZONA_MIC_DETECT_3, &val); in arizona_micd_read()
853 dev_err(arizona->dev, in arizona_micd_read()
858 dev_dbg(arizona->dev, "MICDET: %x\n", val); in arizona_micd_read()
861 dev_warn(arizona->dev, in arizona_micd_read()
868 dev_err(arizona->dev, "Failed to get valid MICDET value\n"); in arizona_micd_read()
878 struct arizona *arizona = info->arizona; in arizona_micdet_reading() local
881 if (info->detecting && arizona->pdata.micd_software_compare) in arizona_micdet_reading()
892 dev_warn(arizona->dev, "Detected open circuit\n"); in arizona_micdet_reading()
909 dev_err(arizona->dev, "Headset report failed: %d\n", in arizona_micdet_reading()
915 dev_err(arizona->dev, "Failed to bypass MICVDD: %d\n", in arizona_micdet_reading()
930 dev_dbg(arizona->dev, "Detected HP/line\n"); in arizona_micdet_reading()
943 if (arizona->pdata.micd_software_compare) in arizona_micdet_reading()
944 regmap_update_bits(arizona->regmap, in arizona_micdet_reading()
951 msecs_to_jiffies(arizona->pdata.micd_timeout)); in arizona_micdet_reading()
961 dev_dbg(arizona->dev, "Headphone detected\n"); in arizona_micdet_reading()
972 struct arizona *arizona = info->arizona; in arizona_button_reading() local
985 dev_dbg(arizona->dev, "Mic button detected\n"); in arizona_button_reading()
999 dev_err(arizona->dev, "Button out of range\n"); in arizona_button_reading()
1002 dev_warn(arizona->dev, "Button with no mic: %x\n", in arizona_button_reading()
1006 dev_dbg(arizona->dev, "Mic button released\n"); in arizona_button_reading()
1022 struct arizona *arizona = info->arizona; in arizona_micd_detect() local
1032 dev_err(arizona->dev, "Failed to check cable state: %d\n", in arizona_micd_detect()
1037 dev_dbg(arizona->dev, "Ignoring MICDET for removed cable\n"); in arizona_micd_detect()
1054 struct arizona *arizona = info->arizona; in arizona_micdet() local
1055 int debounce = arizona->pdata.micd_detect_debounce; in arizona_micdet()
1088 struct arizona *arizona = info->arizona; in arizona_hpdet_wait() local
1093 ret = regmap_read(arizona->regmap, ARIZONA_HEADPHONE_DETECT_2, in arizona_hpdet_wait()
1096 dev_err(arizona->dev, in arizona_hpdet_wait()
1115 dev_warn(arizona->dev, "HPDET did not appear to complete\n"); in arizona_hpdet_wait()
1123 struct arizona *arizona = info->arizona; in arizona_jackdet() local
1140 if (arizona->pdata.jd_invert) in arizona_jackdet()
1146 ret = regmap_read(arizona->regmap, ARIZONA_AOD_IRQ_RAW_STATUS, &val); in arizona_jackdet()
1148 dev_err(arizona->dev, "Failed to read jackdet status: %d\n", in arizona_jackdet()
1157 dev_dbg(arizona->dev, "Suppressing duplicate JACKDET\n"); in arizona_jackdet()
1164 int micd_timeout = arizona->pdata.micd_timeout; in arizona_jackdet()
1176 dev_dbg(arizona->dev, "Detected jack\n"); in arizona_jackdet()
1181 dev_err(arizona->dev, "Mechanical report failed: %d\n", in arizona_jackdet()
1188 if (!arizona->pdata.hpdet_acc_id) { in arizona_jackdet()
1196 if (info->micd_clamp || !arizona->pdata.jd_invert) in arizona_jackdet()
1197 regmap_update_bits(arizona->regmap, in arizona_jackdet()
1202 dev_dbg(arizona->dev, "Detected jack removal\n"); in arizona_jackdet()
1222 dev_err(arizona->dev, in arizona_jackdet()
1235 regmap_update_bits(arizona->regmap, in arizona_jackdet()
1243 regmap_write(arizona->regmap, ARIZONA_AOD_WKUP_AND_TRIG, in arizona_jackdet()
1258 static void arizona_micd_set_level(struct arizona *arizona, int index, in arizona_micd_set_level() argument
1274 regmap_update_bits(arizona->regmap, reg, mask, level); in arizona_micd_set_level()
1278 struct arizona *arizona) in arizona_extcon_get_micd_configs() argument
1287 nconfs = device_property_count_u32(arizona->dev, prop); in arizona_extcon_get_micd_configs()
1295 ret = device_property_read_u32_array(arizona->dev, prop, vals, nconfs); in arizona_extcon_get_micd_configs()
1313 arizona->pdata.micd_configs = micd_configs; in arizona_extcon_get_micd_configs()
1314 arizona->pdata.num_micd_configs = nconfs; in arizona_extcon_get_micd_configs()
1322 struct arizona *arizona) in arizona_extcon_device_get_pdata() argument
1324 struct arizona_pdata *pdata = &arizona->pdata; in arizona_extcon_device_get_pdata()
1328 device_property_read_u32(arizona->dev, "wlf,hpdet-channel", &val); in arizona_extcon_device_get_pdata()
1335 dev_err(arizona->dev, in arizona_extcon_device_get_pdata()
1340 device_property_read_u32(arizona->dev, "wlf,micd-detect-debounce", in arizona_extcon_device_get_pdata()
1343 device_property_read_u32(arizona->dev, "wlf,micd-bias-start-time", in arizona_extcon_device_get_pdata()
1346 device_property_read_u32(arizona->dev, "wlf,micd-rate", in arizona_extcon_device_get_pdata()
1349 device_property_read_u32(arizona->dev, "wlf,micd-dbtime", in arizona_extcon_device_get_pdata()
1352 device_property_read_u32(arizona->dev, "wlf,micd-timeout-ms", in arizona_extcon_device_get_pdata()
1355 pdata->micd_force_micbias = device_property_read_bool(arizona->dev, in arizona_extcon_device_get_pdata()
1358 pdata->micd_software_compare = device_property_read_bool(arizona->dev, in arizona_extcon_device_get_pdata()
1361 pdata->jd_invert = device_property_read_bool(arizona->dev, in arizona_extcon_device_get_pdata()
1364 device_property_read_u32(arizona->dev, "wlf,gpsw", &pdata->gpsw); in arizona_extcon_device_get_pdata()
1366 pdata->jd_gpio5 = device_property_read_bool(arizona->dev, in arizona_extcon_device_get_pdata()
1368 pdata->jd_gpio5_nopull = device_property_read_bool(arizona->dev, in arizona_extcon_device_get_pdata()
1371 ret = arizona_extcon_get_micd_configs(dev, arizona); in arizona_extcon_device_get_pdata()
1373 dev_err(arizona->dev, "Failed to read micd configs: %d\n", ret); in arizona_extcon_device_get_pdata()
1380 struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); in arizona_extcon_probe() local
1381 struct arizona_pdata *pdata = &arizona->pdata; in arizona_extcon_probe()
1388 if (!arizona->dapm || !arizona->dapm->card) in arizona_extcon_probe()
1395 if (!dev_get_platdata(arizona->dev)) in arizona_extcon_probe()
1396 arizona_extcon_device_get_pdata(&pdev->dev, arizona); in arizona_extcon_probe()
1401 dev_err(arizona->dev, "Failed to get MICVDD: %d\n", ret); in arizona_extcon_probe()
1406 info->arizona = arizona; in arizona_extcon_probe()
1414 switch (arizona->type) { in arizona_extcon_probe()
1416 switch (arizona->rev) { in arizona_extcon_probe()
1428 switch (arizona->rev) { in arizona_extcon_probe()
1454 dev_err(arizona->dev, "extcon_dev_register() failed: %d\n", in arizona_extcon_probe()
1461 dev_err(arizona->dev, "Can't allocate input dev\n"); in arizona_extcon_probe()
1467 info->input->phys = "arizona/extcon"; in arizona_extcon_probe()
1480 if (arizona->pdata.gpsw > 0) in arizona_extcon_probe()
1481 regmap_update_bits(arizona->regmap, ARIZONA_GP_SWITCH_1, in arizona_extcon_probe()
1482 ARIZONA_SW1_MODE_MASK, arizona->pdata.gpsw); in arizona_extcon_probe()
1493 dev_err(arizona->dev, "Failed to request GPIO%d: %d\n", in arizona_extcon_probe()
1510 info->micd_pol_gpio = gpiod_get_optional(arizona->dev, in arizona_extcon_probe()
1515 dev_err(arizona->dev, in arizona_extcon_probe()
1522 if (arizona->pdata.hpdet_id_gpio > 0) { in arizona_extcon_probe()
1524 arizona->pdata.hpdet_id_gpio, in arizona_extcon_probe()
1528 dev_err(arizona->dev, "Failed to request GPIO%d: %d\n", in arizona_extcon_probe()
1529 arizona->pdata.hpdet_id_gpio, ret); in arizona_extcon_probe()
1534 if (arizona->pdata.micd_bias_start_time) in arizona_extcon_probe()
1535 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_probe()
1537 arizona->pdata.micd_bias_start_time in arizona_extcon_probe()
1540 if (arizona->pdata.micd_rate) in arizona_extcon_probe()
1541 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_probe()
1543 arizona->pdata.micd_rate in arizona_extcon_probe()
1546 switch (arizona->pdata.micd_dbtime) { in arizona_extcon_probe()
1548 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_probe()
1553 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_probe()
1563 if (arizona->pdata.num_micd_ranges) { in arizona_extcon_probe()
1571 if (arizona->pdata.num_micd_ranges > ARIZONA_MAX_MICD_RANGE) { in arizona_extcon_probe()
1572 dev_err(arizona->dev, "Too many MICD ranges: %d\n", in arizona_extcon_probe()
1573 arizona->pdata.num_micd_ranges); in arizona_extcon_probe()
1580 dev_err(arizona->dev, in arizona_extcon_probe()
1589 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_2, in arizona_extcon_probe()
1599 dev_err(arizona->dev, "Unsupported MICD level %d\n", in arizona_extcon_probe()
1605 dev_dbg(arizona->dev, "%d ohms for MICD threshold %d\n", in arizona_extcon_probe()
1608 arizona_micd_set_level(arizona, i, j); in arizona_extcon_probe()
1613 regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_2, in arizona_extcon_probe()
1619 arizona_micd_set_level(arizona, i, 0x3f); in arizona_extcon_probe()
1626 if (arizona->pdata.jd_gpio5) { in arizona_extcon_probe()
1629 if (arizona->pdata.jd_gpio5_nopull) in arizona_extcon_probe()
1632 regmap_write(arizona->regmap, ARIZONA_GPIO5_CTRL, in arizona_extcon_probe()
1635 if (arizona->pdata.jd_invert) in arizona_extcon_probe()
1640 if (arizona->pdata.jd_invert) in arizona_extcon_probe()
1646 regmap_update_bits(arizona->regmap, in arizona_extcon_probe()
1650 regmap_update_bits(arizona->regmap, in arizona_extcon_probe()
1670 ret = arizona_request_irq(arizona, jack_irq_rise, in arizona_extcon_probe()
1678 ret = arizona_set_irq_wake(arizona, jack_irq_rise, 1); in arizona_extcon_probe()
1685 ret = arizona_request_irq(arizona, jack_irq_fall, in arizona_extcon_probe()
1692 ret = arizona_set_irq_wake(arizona, jack_irq_fall, 1); in arizona_extcon_probe()
1699 ret = arizona_request_irq(arizona, ARIZONA_IRQ_MICDET, in arizona_extcon_probe()
1706 ret = arizona_request_irq(arizona, ARIZONA_IRQ_HPDET, in arizona_extcon_probe()
1713 arizona_clk32k_enable(arizona); in arizona_extcon_probe()
1714 regmap_update_bits(arizona->regmap, ARIZONA_JACK_DETECT_DEBOUNCE, in arizona_extcon_probe()
1716 regmap_update_bits(arizona->regmap, ARIZONA_JACK_DETECT_ANALOGUE, in arizona_extcon_probe()
1721 dev_warn(arizona->dev, "Failed to set MICVDD to bypass: %d\n", in arizona_extcon_probe()
1735 arizona_free_irq(arizona, ARIZONA_IRQ_HPDET, info); in arizona_extcon_probe()
1737 arizona_free_irq(arizona, ARIZONA_IRQ_MICDET, info); in arizona_extcon_probe()
1739 arizona_set_irq_wake(arizona, jack_irq_fall, 0); in arizona_extcon_probe()
1741 arizona_free_irq(arizona, jack_irq_fall, info); in arizona_extcon_probe()
1743 arizona_set_irq_wake(arizona, jack_irq_rise, 0); in arizona_extcon_probe()
1745 arizona_free_irq(arizona, jack_irq_rise, info); in arizona_extcon_probe()
1757 struct arizona *arizona = info->arizona; in arizona_extcon_remove() local
1762 ret = regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1, in arizona_extcon_remove()
1777 regmap_update_bits(arizona->regmap, in arizona_extcon_remove()
1789 arizona_set_irq_wake(arizona, jack_irq_rise, 0); in arizona_extcon_remove()
1790 arizona_set_irq_wake(arizona, jack_irq_fall, 0); in arizona_extcon_remove()
1791 arizona_free_irq(arizona, ARIZONA_IRQ_HPDET, info); in arizona_extcon_remove()
1792 arizona_free_irq(arizona, ARIZONA_IRQ_MICDET, info); in arizona_extcon_remove()
1793 arizona_free_irq(arizona, jack_irq_rise, info); in arizona_extcon_remove()
1794 arizona_free_irq(arizona, jack_irq_fall, info); in arizona_extcon_remove()
1796 regmap_update_bits(arizona->regmap, ARIZONA_JACK_DETECT_ANALOGUE, in arizona_extcon_remove()
1798 arizona_clk32k_disable(arizona); in arizona_extcon_remove()
1805 .name = "arizona-extcon",
1813 MODULE_DESCRIPTION("Arizona Extcon driver");
1816 MODULE_ALIAS("platform:extcon-arizona");