Skip to content

Commit aefe7a8

Browse files
committed
GPIO inclusion fixes to misc sound drivers
Merge series from Linus Walleij <linus.walleij@linaro.org>: Mostly dropping unused headers, and a single driver rewrite.
2 parents c13cf19 + 26e91f6 commit aefe7a8

8 files changed

Lines changed: 29 additions & 37 deletions

File tree

arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@
446446
tegra_ac97: ac97@70002000 {
447447
status = "okay";
448448
nvidia,codec-reset-gpio =
449-
<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
449+
<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
450450
nvidia,codec-sync-gpio =
451451
<&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
452452
};

sound/soc/generic/audio-graph-card.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include <linux/clk.h>
1111
#include <linux/device.h>
12-
#include <linux/gpio.h>
1312
#include <linux/gpio/consumer.h>
1413
#include <linux/module.h>
1514
#include <linux/of.h>

sound/soc/generic/audio-graph-card2.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
// based on ${LINUX}/sound/soc/generic/audio-graph-card.c
99
#include <linux/clk.h>
1010
#include <linux/device.h>
11-
#include <linux/gpio.h>
1211
#include <linux/gpio/consumer.h>
1312
#include <linux/module.h>
1413
#include <linux/of.h>

sound/soc/generic/simple-card-utils.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// Copyright (c) 2016 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
66

77
#include <linux/clk.h>
8-
#include <linux/gpio.h>
98
#include <linux/gpio/consumer.h>
109
#include <linux/module.h>
1110
#include <linux/of.h>

sound/soc/hisilicon/hi6210-i2s.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include <linux/clk.h>
1616
#include <linux/jiffies.h>
1717
#include <linux/io.h>
18-
#include <linux/gpio.h>
1918
#include <sound/core.h>
2019
#include <sound/pcm.h>
2120
#include <sound/pcm_params.h>

sound/soc/qcom/sc7180.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
#include <dt-bindings/sound/sc7180-lpass.h>
88
#include <dt-bindings/sound/qcom,q6afe.h>
9-
#include <linux/gpio.h>
109
#include <linux/gpio/consumer.h>
1110
#include <linux/module.h>
1211
#include <linux/of.h>

sound/soc/tegra/tegra20_ac97.c

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
#include <linux/clk.h>
1313
#include <linux/delay.h>
1414
#include <linux/device.h>
15-
#include <linux/gpio.h>
15+
#include <linux/gpio/consumer.h>
1616
#include <linux/io.h>
1717
#include <linux/jiffies.h>
1818
#include <linux/module.h>
1919
#include <linux/of.h>
20-
#include <linux/of_gpio.h>
2120
#include <linux/platform_device.h>
2221
#include <linux/regmap.h>
2322
#include <linux/reset.h>
@@ -39,11 +38,15 @@ static void tegra20_ac97_codec_reset(struct snd_ac97 *ac97)
3938
u32 readback;
4039
unsigned long timeout;
4140

42-
/* reset line is not driven by DAC pad group, have to toggle GPIO */
43-
gpio_set_value(workdata->reset_gpio, 0);
41+
/*
42+
* The reset line is not driven by DAC pad group, have to toggle GPIO.
43+
* The RESET line is active low but this is abstracted by the GPIO
44+
* library.
45+
*/
46+
gpiod_set_value(workdata->reset_gpio, 1);
4447
udelay(2);
4548

46-
gpio_set_value(workdata->reset_gpio, 1);
49+
gpiod_set_value(workdata->reset_gpio, 0);
4750
udelay(2);
4851

4952
timeout = jiffies + msecs_to_jiffies(100);
@@ -66,14 +69,10 @@ static void tegra20_ac97_codec_warm_reset(struct snd_ac97 *ac97)
6669
* the controller cmd is not working, have to toggle sync line
6770
* manually.
6871
*/
69-
gpio_request(workdata->sync_gpio, "codec-sync");
70-
71-
gpio_direction_output(workdata->sync_gpio, 1);
72-
72+
gpiod_direction_output(workdata->sync_gpio, 1);
7373
udelay(2);
74-
gpio_set_value(workdata->sync_gpio, 0);
74+
gpiod_set_value(workdata->sync_gpio, 0);
7575
udelay(2);
76-
gpio_free(workdata->sync_gpio);
7776

7877
timeout = jiffies + msecs_to_jiffies(100);
7978

@@ -342,28 +341,26 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
342341
goto err_clk_put;
343342
}
344343

345-
ac97->reset_gpio = of_get_named_gpio(pdev->dev.of_node,
346-
"nvidia,codec-reset-gpio", 0);
347-
if (gpio_is_valid(ac97->reset_gpio)) {
348-
ret = devm_gpio_request_one(&pdev->dev, ac97->reset_gpio,
349-
GPIOF_OUT_INIT_HIGH, "codec-reset");
350-
if (ret) {
351-
dev_err(&pdev->dev, "could not get codec-reset GPIO\n");
352-
goto err_clk_put;
353-
}
354-
} else {
355-
dev_err(&pdev->dev, "no codec-reset GPIO supplied\n");
356-
ret = -EINVAL;
344+
/* Obtain RESET de-asserted */
345+
ac97->reset_gpio = devm_gpiod_get(&pdev->dev,
346+
"nvidia,codec-reset",
347+
GPIOD_OUT_LOW);
348+
if (IS_ERR(ac97->reset_gpio)) {
349+
ret = PTR_ERR(ac97->reset_gpio);
350+
dev_err(&pdev->dev, "no RESET GPIO supplied: %d\n", ret);
357351
goto err_clk_put;
358352
}
359-
360-
ac97->sync_gpio = of_get_named_gpio(pdev->dev.of_node,
361-
"nvidia,codec-sync-gpio", 0);
362-
if (!gpio_is_valid(ac97->sync_gpio)) {
363-
dev_err(&pdev->dev, "no codec-sync GPIO supplied\n");
364-
ret = -EINVAL;
353+
gpiod_set_consumer_name(ac97->reset_gpio, "codec-reset");
354+
355+
ac97->sync_gpio = devm_gpiod_get(&pdev->dev,
356+
"nvidia,codec-sync",
357+
GPIOD_OUT_LOW);
358+
if (IS_ERR(ac97->sync_gpio)) {
359+
ret = PTR_ERR(ac97->sync_gpio);
360+
dev_err(&pdev->dev, "no codec-sync GPIO supplied: %d\n", ret);
365361
goto err_clk_put;
366362
}
363+
gpiod_set_consumer_name(ac97->sync_gpio, "codec-sync");
367364

368365
ac97->capture_dma_data.addr = mem->start + TEGRA20_AC97_FIFO_RX1;
369366
ac97->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;

sound/soc/tegra/tegra20_ac97.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ struct tegra20_ac97 {
8080
struct snd_dmaengine_dai_dma_data playback_dma_data;
8181
struct reset_control *reset;
8282
struct regmap *regmap;
83-
int reset_gpio;
84-
int sync_gpio;
83+
struct gpio_desc *reset_gpio;
84+
struct gpio_desc *sync_gpio;
8585
};
8686
#endif /* __TEGRA20_AC97_H__ */

0 commit comments

Comments
 (0)