ASoC: sta32x: Use devm_gpiod_get_optional at appropriate place
authorAxel Lin <axel.lin@ingics.com>
Sat, 9 May 2015 15:08:33 +0000 (23:08 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 12 May 2015 17:52:12 +0000 (18:52 +0100)
devm_gpiod_get_optional() is equivalent to devm_gpiod_get(), except that
when no GPIO was assigned to the requested function it will return NULL.
This is convenient for drivers that need to handle optional GPIOs.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/sta32x.c

index 007a0e3bc2735c0c6f9d8325f15445657fcfd374..0111baf9a5d4ccc82a97d7c39fca2811fe7235ef 100644 (file)
@@ -1096,16 +1096,10 @@ static int sta32x_i2c_probe(struct i2c_client *i2c,
 #endif
 
        /* GPIOs */
-       sta32x->gpiod_nreset = devm_gpiod_get(dev, "reset");
-       if (IS_ERR(sta32x->gpiod_nreset)) {
-               ret = PTR_ERR(sta32x->gpiod_nreset);
-               if (ret != -ENOENT && ret != -ENOSYS)
-                       return ret;
-
-               sta32x->gpiod_nreset = NULL;
-       } else {
-               gpiod_direction_output(sta32x->gpiod_nreset, 0);
-       }
+       sta32x->gpiod_nreset = devm_gpiod_get_optional(dev, "reset",
+                                                      GPIOD_OUT_LOW);
+       if (IS_ERR(sta32x->gpiod_nreset))
+               return PTR_ERR(sta32x->gpiod_nreset);
 
        /* regulators */
        for (i = 0; i < ARRAY_SIZE(sta32x->supplies); i++)