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

Commit c6f0ede7 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

ASoC: JZ4740: qi_lb60: Use gpio_request_array to request and setup gpios



This patch changes the qi_lb60 setup code to use gpio_request_array instead of
manually calling gpio_request and gpio_direction_output for each gpio.
Doing so makes the code a bit more compact.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarLiam Girdwood <lrg@ti.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 13319699
Loading
Loading
Loading
Loading
+10 −19
Original line number Diff line number Diff line
@@ -96,6 +96,11 @@ static struct snd_soc_card qi_lb60 = {

static struct platform_device *qi_lb60_snd_device;

static const struct gpio qi_lb60_gpios[] = {
	{ QI_LB60_SND_GPIO, GPIOF_OUT_INIT_LOW, "SND" },
	{ QI_LB60_AMP_GPIO, GPIOF_OUT_INIT_LOW, "AMP" },
};

static int __init qi_lb60_init(void)
{
	int ret;
@@ -105,23 +110,12 @@ static int __init qi_lb60_init(void)
	if (!qi_lb60_snd_device)
		return -ENOMEM;

	ret = gpio_request(QI_LB60_SND_GPIO, "SND");
	ret = gpio_request_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
	if (ret) {
		pr_err("qi_lb60 snd: Failed to request SND GPIO(%d): %d\n",
				QI_LB60_SND_GPIO, ret);
		pr_err("qi_lb60 snd: Failed to request gpios: %d\n", ret);
		goto err_device_put;
	}

	ret = gpio_request(QI_LB60_AMP_GPIO, "AMP");
	if (ret) {
		pr_err("qi_lb60 snd: Failed to request AMP GPIO(%d): %d\n",
				QI_LB60_AMP_GPIO, ret);
		goto err_gpio_free_snd;
	}

	gpio_direction_output(QI_LB60_SND_GPIO, 0);
	gpio_direction_output(QI_LB60_AMP_GPIO, 0);

	platform_set_drvdata(qi_lb60_snd_device, &qi_lb60);

	ret = platform_device_add(qi_lb60_snd_device);
@@ -134,10 +128,8 @@ static int __init qi_lb60_init(void)

err_unset_pdata:
	platform_set_drvdata(qi_lb60_snd_device, NULL);
/*err_gpio_free_amp:*/
	gpio_free(QI_LB60_AMP_GPIO);
err_gpio_free_snd:
	gpio_free(QI_LB60_SND_GPIO);
/*err_gpio_free_array:*/
	gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
err_device_put:
	platform_device_put(qi_lb60_snd_device);

@@ -147,9 +139,8 @@ module_init(qi_lb60_init);

static void __exit qi_lb60_exit(void)
{
	gpio_free(QI_LB60_AMP_GPIO);
	gpio_free(QI_LB60_SND_GPIO);
	platform_device_unregister(qi_lb60_snd_device);
	gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
}
module_exit(qi_lb60_exit);