diff options
Diffstat (limited to 'drivers/gpio/gpiolib-devprop.c')
| -rw-r--r-- | drivers/gpio/gpiolib-devprop.c | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/gpio/gpiolib-devprop.c b/drivers/gpio/gpiolib-devprop.c index 27f383bda7d9..f748aa3e77f7 100644 --- a/drivers/gpio/gpiolib-devprop.c +++ b/drivers/gpio/gpiolib-devprop.c @@ -19,30 +19,27 @@  /**   * devprop_gpiochip_set_names - Set GPIO line names using device properties   * @chip: GPIO chip whose lines should be named, if possible + * @fwnode: Property Node containing the gpio-line-names property   *   * Looks for device property "gpio-line-names" and if it exists assigns   * GPIO line names for the chip. The memory allocated for the assigned   * names belong to the underlying firmware node and should not be released   * by the caller.   */ -void devprop_gpiochip_set_names(struct gpio_chip *chip) +void devprop_gpiochip_set_names(struct gpio_chip *chip, +				const struct fwnode_handle *fwnode)  {  	struct gpio_device *gdev = chip->gpiodev;  	const char **names;  	int ret, i; -	if (!chip->parent) { -		dev_warn(&gdev->dev, "GPIO chip parent is NULL\n"); -		return; -	} - -	ret = device_property_read_string_array(chip->parent, "gpio-line-names", +	ret = fwnode_property_read_string_array(fwnode, "gpio-line-names",  						NULL, 0);  	if (ret < 0)  		return;  	if (ret != gdev->ngpio) { -		dev_warn(chip->parent, +		dev_warn(&gdev->dev,  			 "names %d do not match number of GPIOs %d\n", ret,  			 gdev->ngpio);  		return; @@ -52,10 +49,10 @@ void devprop_gpiochip_set_names(struct gpio_chip *chip)  	if (!names)  		return; -	ret = device_property_read_string_array(chip->parent, "gpio-line-names", +	ret = fwnode_property_read_string_array(fwnode, "gpio-line-names",  						names, gdev->ngpio);  	if (ret < 0) { -		dev_warn(chip->parent, "failed to read GPIO line names\n"); +		dev_warn(&gdev->dev, "failed to read GPIO line names\n");  		kfree(names);  		return;  	}  |