|
|
@@ -1726,6 +1726,16 @@ static int arizona_extcon_remove(struct platform_device *pdev)
|
|
|
struct arizona_extcon_info *info = platform_get_drvdata(pdev);
|
|
|
struct arizona *arizona = info->arizona;
|
|
|
int jack_irq_rise, jack_irq_fall;
|
|
|
+ bool change;
|
|
|
+
|
|
|
+ regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1,
|
|
|
+ ARIZONA_MICD_ENA, 0,
|
|
|
+ &change);
|
|
|
+
|
|
|
+ if (change) {
|
|
|
+ regulator_disable(info->micvdd);
|
|
|
+ pm_runtime_put(info->dev);
|
|
|
+ }
|
|
|
|
|
|
gpiod_put(info->micd_pol_gpio);
|
|
|
|