diff options
| author | Axel Lin <axel.lin@ingics.com> | 2015-05-09 11:08:33 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2015-05-12 13:52:12 -0400 |
| commit | 79ffbf11b77d4ded9935cdd291a84936b7f003ef (patch) | |
| tree | 1b8ef590a6f651ec9a9659a867fb6d33e70a0974 | |
| parent | b787f68c36d49bb1d9236f403813641efa74a031 (diff) | |
ASoC: sta32x: Use devm_gpiod_get_optional at appropriate place
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>
| -rw-r--r-- | sound/soc/codecs/sta32x.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sound/soc/codecs/sta32x.c b/sound/soc/codecs/sta32x.c index 007a0e3bc273..0111baf9a5d4 100644 --- a/sound/soc/codecs/sta32x.c +++ b/sound/soc/codecs/sta32x.c | |||
| @@ -1096,16 +1096,10 @@ static int sta32x_i2c_probe(struct i2c_client *i2c, | |||
| 1096 | #endif | 1096 | #endif |
| 1097 | 1097 | ||
| 1098 | /* GPIOs */ | 1098 | /* GPIOs */ |
| 1099 | sta32x->gpiod_nreset = devm_gpiod_get(dev, "reset"); | 1099 | sta32x->gpiod_nreset = devm_gpiod_get_optional(dev, "reset", |
| 1100 | if (IS_ERR(sta32x->gpiod_nreset)) { | 1100 | GPIOD_OUT_LOW); |
| 1101 | ret = PTR_ERR(sta32x->gpiod_nreset); | 1101 | if (IS_ERR(sta32x->gpiod_nreset)) |
| 1102 | if (ret != -ENOENT && ret != -ENOSYS) | 1102 | return PTR_ERR(sta32x->gpiod_nreset); |
| 1103 | return ret; | ||
| 1104 | |||
| 1105 | sta32x->gpiod_nreset = NULL; | ||
| 1106 | } else { | ||
| 1107 | gpiod_direction_output(sta32x->gpiod_nreset, 0); | ||
| 1108 | } | ||
| 1109 | 1103 | ||
| 1110 | /* regulators */ | 1104 | /* regulators */ |
| 1111 | for (i = 0; i < ARRAY_SIZE(sta32x->supplies); i++) | 1105 | for (i = 0; i < ARRAY_SIZE(sta32x->supplies); i++) |
