Add a read-only 'dev_name' attribute to configfs interface, which exposes the platform bus device name. Users can easily identify which gpiochip<N> has been created as follows: $ cat /sys/kernel/config/gpio-aggregator/<aggregator-name>/dev_name gpio-aggregator.0 $ ls -d /sys/devices/platform/gpio-aggregator.0/gpiochip* gpiochip3 Signed-off-by: Koichiro Den <koichiro.den@xxxxxxxxxxxxx> --- drivers/gpio/gpio-aggregator.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c index c63cf3067ce7..76d3a8677308 100644 --- a/drivers/gpio/gpio-aggregator.c +++ b/drivers/gpio/gpio-aggregator.c @@ -732,6 +732,23 @@ static struct configfs_attribute *gpio_aggr_line_attrs[] = { NULL }; +static ssize_t +gpio_aggr_device_dev_name_show(struct config_item *item, char *page) +{ + struct gpio_aggregator *aggr = to_gpio_aggregator(item); + struct platform_device *pdev; + + guard(mutex)(&aggr->lock); + + pdev = aggr->pdev; + if (pdev) + return sprintf(page, "%s\n", dev_name(&pdev->dev)); + + return sprintf(page, "%s.%d\n", DRV_NAME, aggr->id); +} + +CONFIGFS_ATTR_RO(gpio_aggr_device_, dev_name); + static ssize_t gpio_aggr_device_live_show(struct config_item *item, char *page) { @@ -781,6 +798,7 @@ gpio_aggr_device_live_store(struct config_item *item, const char *page, CONFIGFS_ATTR(gpio_aggr_device_, live); static struct configfs_attribute *gpio_aggr_device_attrs[] = { + &gpio_aggr_device_attr_dev_name, &gpio_aggr_device_attr_live, NULL }; -- 2.45.2