ASoC: max98357a: Make 'sdmode-gpios' dts property optional
authorAnatol Pomozov <anatol.pomozov@gmail.com>
Sun, 12 Jul 2015 15:14:19 +0000 (08:14 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 13 Jul 2015 18:13:03 +0000 (19:13 +0100)
The option is not needed if chip is always on or managed by some other part
of system like platform card driver.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/sound/max98357a.txt
sound/soc/codecs/max98357a.c

index a7a149a236e55b8372b7cb3622cd6a6c664d4e2d..28645a2ff885e029de228ce9a599b21ff0ef9461 100644 (file)
@@ -4,7 +4,11 @@ This node models the Maxim MAX98357A DAC.
 
 Required properties:
 - compatible   : "maxim,max98357a"
-- sdmode-gpios : GPIO specifier for the GPIO -> DAC SDMODE pin
+
+Optional properties:
+- sdmode-gpios : GPIO specifier for the chip's SD_MODE pin.
+        If this option is not specified then driver does not manage
+        the pin state (e.g. chip is always on).
 
 Example:
 
index 3a2fda08a893c865023d61fec636e65e3c977577..fa1b79302bb3b04be65355580210a093e4775d23 100644 (file)
@@ -31,6 +31,9 @@ static int max98357a_daiops_trigger(struct snd_pcm_substream *substream,
 {
        struct gpio_desc *sdmode = snd_soc_dai_get_drvdata(dai);
 
+       if (!sdmode)
+               return 0;
+
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
@@ -60,7 +63,7 @@ static int max98357a_codec_probe(struct snd_soc_codec *codec)
 {
        struct gpio_desc *sdmode;
 
-       sdmode = devm_gpiod_get(codec->dev, "sdmode", GPIOD_OUT_LOW);
+       sdmode = devm_gpiod_get_optional(codec->dev, "sdmode", GPIOD_OUT_LOW);
        if (IS_ERR(sdmode)) {
                dev_err(codec->dev, "%s() unable to get sdmode GPIO: %ld\n",
                                __func__, PTR_ERR(sdmode));