mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
gpio: mmio: get chip label and GPIO base from device properties
Ahead of removing struct bgpio_pdata support from the gpio-mmio generic module, let's add support for getting the relevant values from generic device properties. "label" is a semi-standardized property in some GPIO drivers so let's go with it. There's no standard "base" property, so let's use the name "gpio-mmio,base" to tie it to this driver specifically. The number of GPIOs will be retrieved using gpiochip_get_ngpios() so there's no need to look it up in the software node. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20250701-gpio-mmio-pdata-v2-2-ebf34d273497@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
e567269e24
commit
c4a8348405
|
|
@ -715,6 +715,9 @@ MODULE_DEVICE_TABLE(of, bgpio_of_match);
|
|||
static struct bgpio_pdata *bgpio_parse_fw(struct device *dev, unsigned long *flags)
|
||||
{
|
||||
struct bgpio_pdata *pdata;
|
||||
const char *label;
|
||||
unsigned int base;
|
||||
int ret;
|
||||
|
||||
if (!dev_fwnode(dev))
|
||||
return NULL;
|
||||
|
|
@ -731,6 +734,18 @@ static struct bgpio_pdata *bgpio_parse_fw(struct device *dev, unsigned long *fla
|
|||
if (device_property_read_bool(dev, "no-output"))
|
||||
*flags |= BGPIOF_NO_OUTPUT;
|
||||
|
||||
ret = device_property_read_string(dev, "label", &label);
|
||||
if (!ret)
|
||||
pdata->label = label;
|
||||
|
||||
/*
|
||||
* This property *must not* be used in device-tree sources, it's only
|
||||
* meant to be passed to the driver from board files and MFD core.
|
||||
*/
|
||||
ret = device_property_read_u32(dev, "gpio-mmio,base", &base);
|
||||
if (!ret && base <= INT_MAX)
|
||||
pdata->base = base;
|
||||
|
||||
return pdata;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user