Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 469cda29 authored by Alban Bedel's avatar Alban Bedel Committed by Mark Brown
Browse files

ASoC: tegra: Read and use the GPIO flags of the headphone detect



The headphone detect was hardcoded to low-active, use the flags from
DT to allow high-active as well.

Signed-off-by: default avatarAlban Bedel <alban.bedel@avionic-design.de>
Acked-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f114040e
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -44,6 +44,7 @@
struct tegra_rt5640 {
struct tegra_rt5640 {
	struct tegra_asoc_utils_data util_data;
	struct tegra_asoc_utils_data util_data;
	int gpio_hp_det;
	int gpio_hp_det;
	enum of_gpio_flags gpio_hp_det_flags;
};
};


static int tegra_rt5640_asoc_hw_params(struct snd_pcm_substream *substream,
static int tegra_rt5640_asoc_hw_params(struct snd_pcm_substream *substream,
@@ -119,6 +120,8 @@ static int tegra_rt5640_asoc_init(struct snd_soc_pcm_runtime *rtd)


	if (gpio_is_valid(machine->gpio_hp_det)) {
	if (gpio_is_valid(machine->gpio_hp_det)) {
		tegra_rt5640_hp_jack_gpio.gpio = machine->gpio_hp_det;
		tegra_rt5640_hp_jack_gpio.gpio = machine->gpio_hp_det;
		tegra_rt5640_hp_jack_gpio.invert =
			!!(machine->gpio_hp_det_flags & OF_GPIO_ACTIVE_LOW);
		snd_soc_jack_add_gpios(&tegra_rt5640_hp_jack,
		snd_soc_jack_add_gpios(&tegra_rt5640_hp_jack,
						1,
						1,
						&tegra_rt5640_hp_jack_gpio);
						&tegra_rt5640_hp_jack_gpio);
@@ -180,7 +183,8 @@ static int tegra_rt5640_probe(struct platform_device *pdev)
	platform_set_drvdata(pdev, card);
	platform_set_drvdata(pdev, card);
	snd_soc_card_set_drvdata(card, machine);
	snd_soc_card_set_drvdata(card, machine);


	machine->gpio_hp_det = of_get_named_gpio(np, "nvidia,hp-det-gpios", 0);
	machine->gpio_hp_det = of_get_named_gpio_flags(
		np, "nvidia,hp-det-gpios", 0, &machine->gpio_hp_det_flags);
	if (machine->gpio_hp_det == -EPROBE_DEFER)
	if (machine->gpio_hp_det == -EPROBE_DEFER)
		return -EPROBE_DEFER;
		return -EPROBE_DEFER;