[linux-joule][PATCH 2/9] extcon-arizona: Use micd-pol gpio conditionally
Wen-chien Jesse Sung
jesse.sung at canonical.com
Tue Jun 20 13:35:09 UTC 2017
From: Jukka Laitinen <jukka.laitinen at intel.com>
BugLink: https://launchpad.net/bugs/1698051
The micd-pol gpio is not necessarily used by the hardware. If it
is not defined anywhere, don't try to initialize the GPIO
Signed-off-by: Jukka Laitinen <jukka.laitinen at intel.com>
Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
---
drivers/extcon/extcon-arizona.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
index e4890dd..a078cdb 100644
--- a/drivers/extcon/extcon-arizona.c
+++ b/drivers/extcon/extcon-arizona.c
@@ -240,8 +240,9 @@ static void arizona_extcon_set_mode(struct arizona_extcon_info *info, int mode)
gpio_set_value_cansleep(arizona->pdata.micd_pol_gpio,
info->micd_modes[mode].gpio);
else
- gpiod_set_value_cansleep(info->micd_pol_gpio,
- info->micd_modes[mode].gpio);
+ if (info->micd_pol_gpio)
+ gpiod_set_value_cansleep(info->micd_pol_gpio,
+ info->micd_modes[mode].gpio);
regmap_update_bits(arizona->regmap, ARIZONA_MIC_DETECT_1,
ARIZONA_MICD_BIAS_SRC_MASK,
@@ -1373,10 +1374,10 @@ static int arizona_extcon_probe(struct platform_device *pdev)
GPIOD_OUT_LOW);
if (IS_ERR(info->micd_pol_gpio)) {
ret = PTR_ERR(info->micd_pol_gpio);
- dev_err(arizona->dev,
+ dev_dbg(arizona->dev,
"Failed to get microphone polarity GPIO: %d\n",
ret);
- goto err_register;
+ info->micd_pol_gpio = 0;
}
}
@@ -1605,7 +1606,8 @@ err_rise_wake:
err_rise:
arizona_free_irq(arizona, jack_irq_rise, info);
err_gpio:
- gpiod_put(info->micd_pol_gpio);
+ if (info->micd_pol_gpio)
+ gpiod_put(info->micd_pol_gpio);
err_register:
pm_runtime_disable(&pdev->dev);
return ret;
@@ -1617,7 +1619,8 @@ static int arizona_extcon_remove(struct platform_device *pdev)
struct arizona *arizona = info->arizona;
int jack_irq_rise, jack_irq_fall;
- gpiod_put(info->micd_pol_gpio);
+ if (info->micd_pol_gpio)
+ gpiod_put(info->micd_pol_gpio);
pm_runtime_disable(&pdev->dev);
--
2.7.4
More information about the kernel-team
mailing list