mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
gpiolib: of: add a quirk for legacy names in Mediatek mt2701-cs42448
The driver is using non-standard "i2s1-in-sel-gpio1" and "i2s1-in-sel-gpio2" names to describe its gpios. In preparation to converting to the standard naming (i2s1-in-sel-gpios) and switching the driver to gpiod API add a quirk to gpiolib to keep compatibility with existing DTSes. Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
f5a681d238
commit
326c3753a6
|
|
@ -488,6 +488,38 @@ static struct gpio_desc *of_find_usb_gpio(struct device_node *np,
|
|||
return of_get_named_gpiod_flags(np, con_id, idx, of_flags);
|
||||
}
|
||||
|
||||
static struct gpio_desc *of_find_mt2701_gpio(struct device_node *np,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
enum of_gpio_flags *of_flags)
|
||||
{
|
||||
struct gpio_desc *desc;
|
||||
const char *legacy_id;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448))
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
if (!of_device_is_compatible(np, "mediatek,mt2701-cs42448-machine"))
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
if (!con_id || strcmp(con_id, "i2s1-in-sel"))
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
if (idx == 0)
|
||||
legacy_id = "i2s1-in-sel-gpio1";
|
||||
else if (idx == 1)
|
||||
legacy_id = "i2s1-in-sel-gpio2";
|
||||
else
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
desc = of_get_named_gpiod_flags(np, legacy_id, 0, of_flags);
|
||||
if (!gpiod_not_found(desc))
|
||||
pr_info("%s is using legacy gpio name '%s' instead of '%s-gpios'\n",
|
||||
of_node_full_name(np), legacy_id, con_id);
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
typedef struct gpio_desc *(*of_find_gpio_quirk)(struct device_node *np,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
|
|
@ -498,6 +530,7 @@ static const of_find_gpio_quirk of_find_gpio_quirks[] = {
|
|||
of_find_regulator_gpio,
|
||||
of_find_arizona_gpio,
|
||||
of_find_usb_gpio,
|
||||
of_find_mt2701_gpio,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user