ASoC: codecs: wsa883x: Use proper shutdown GPIO polarity
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thu, 10 Nov 2022 13:35:12 +0000 (14:35 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 11 Nov 2022 18:44:26 +0000 (18:44 +0000)
The shutdown GPIO is active low (SD_N), but this depends on actual board
layout.  Linux drivers should only care about logical state, where high
(1) means shutdown and low (0) means do not shutdown.

Invert the GPIO to match logical value.

Fixes: 43b8c7dc85a1 ("ASoC: codecs: add wsa883x amplifier support")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221110133512.478831-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wsa883x.c

index c7b10bbfba7eaf1e1fe6425b35160184097ea1c7..77a7dd3cf4954ccdfa861fa3907f1456047fb9aa 100644 (file)
@@ -1392,7 +1392,7 @@ static int wsa883x_probe(struct sdw_slave *pdev,
        }
 
        wsa883x->sd_n = devm_gpiod_get_optional(&pdev->dev, "powerdown",
-                                               GPIOD_FLAGS_BIT_NONEXCLUSIVE);
+                                               GPIOD_FLAGS_BIT_NONEXCLUSIVE | GPIOD_OUT_HIGH);
        if (IS_ERR(wsa883x->sd_n)) {
                dev_err(&pdev->dev, "Shutdown Control GPIO not found\n");
                ret = PTR_ERR(wsa883x->sd_n);
@@ -1411,7 +1411,7 @@ static int wsa883x_probe(struct sdw_slave *pdev,
        pdev->prop.simple_clk_stop_capable = true;
        pdev->prop.sink_dpn_prop = wsa_sink_dpn_prop;
        pdev->prop.scp_int1_mask = SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY;
-       gpiod_direction_output(wsa883x->sd_n, 1);
+       gpiod_direction_output(wsa883x->sd_n, 0);
 
        wsa883x->regmap = devm_regmap_init_sdw(pdev, &wsa883x_regmap_config);
        if (IS_ERR(wsa883x->regmap)) {