mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
ASoC: rt5665: Convert to use GPIO descriptors
The RT5665 driver has some stub support for GPIO descriptors going back to the initial driver commit, where there are two GPIO descriptors for the LDO and headphone detection defined in the device state. Well, let's make use of the descriptor properly. We remove the global GPIO number from the platform data, but it is still possible to create board files using GPIO descriptor tables, if desired. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20230817-descriptors-asoc-rt-v2-2-02fa2ca3e5b0@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
a9b5f21073
commit
647a3c4c33
@ -31,8 +31,6 @@ struct rt5665_platform_data {
|
|||||||
bool in3_diff;
|
bool in3_diff;
|
||||||
bool in4_diff;
|
bool in4_diff;
|
||||||
|
|
||||||
int ldo1_en; /* GPIO for LDO1_EN */
|
|
||||||
|
|
||||||
enum rt5665_dmic1_data_pin dmic1_data_pin;
|
enum rt5665_dmic1_data_pin dmic1_data_pin;
|
||||||
enum rt5665_dmic2_data_pin dmic2_data_pin;
|
enum rt5665_dmic2_data_pin dmic2_data_pin;
|
||||||
enum rt5665_jd_src jd_src;
|
enum rt5665_jd_src jd_src;
|
||||||
|
@ -15,8 +15,7 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/spi/spi.h>
|
#include <linux/spi/spi.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
#include <linux/gpio.h>
|
#include <linux/gpio/consumer.h>
|
||||||
#include <linux/of_gpio.h>
|
|
||||||
#include <linux/regulator/consumer.h>
|
#include <linux/regulator/consumer.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
#include <sound/core.h>
|
#include <sound/core.h>
|
||||||
@ -4659,9 +4658,6 @@ static int rt5665_parse_dt(struct rt5665_priv *rt5665, struct device *dev)
|
|||||||
of_property_read_u32(dev->of_node, "realtek,jd-src",
|
of_property_read_u32(dev->of_node, "realtek,jd-src",
|
||||||
&rt5665->pdata.jd_src);
|
&rt5665->pdata.jd_src);
|
||||||
|
|
||||||
rt5665->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
|
|
||||||
"realtek,ldo1-en-gpios", 0);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4795,10 +4791,13 @@ static int rt5665_i2c_probe(struct i2c_client *i2c)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gpio_is_valid(rt5665->pdata.ldo1_en)) {
|
|
||||||
if (devm_gpio_request_one(&i2c->dev, rt5665->pdata.ldo1_en,
|
rt5665->gpiod_ldo1_en = devm_gpiod_get_optional(&i2c->dev,
|
||||||
GPIOF_OUT_INIT_HIGH, "rt5665"))
|
"realtek,ldo1-en",
|
||||||
dev_err(&i2c->dev, "Fail gpio_request gpio_ldo\n");
|
GPIOD_OUT_HIGH);
|
||||||
|
if (IS_ERR(rt5665->gpiod_ldo1_en)) {
|
||||||
|
dev_err(&i2c->dev, "Failed gpio request ldo1_en\n");
|
||||||
|
return PTR_ERR(rt5665->gpiod_ldo1_en);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sleep for 300 ms miniumum */
|
/* Sleep for 300 ms miniumum */
|
||||||
|
Loading…
Reference in New Issue
Block a user