Hi Sakari, On Wed, Aug 31, 2016 at 10:42:05AM +0300, Sakari Ailus wrote: > - if (gpio_is_valid(sensor->hwcfg->xshutdown)) { > + if (client->dev.of_node) { > + sensor->xshutdown = > + devm_gpiod_get_optional(&client->dev, "xshutdown", > + GPIOD_OUT_LOW); > + } else if (gpio_is_valid(sensor->hwcfg->xshutdown)) { > rval = devm_gpio_request_one( > &client->dev, sensor->hwcfg->xshutdown, 0, > "SMIA++ xshutdown"); > @@ -2581,8 +2582,13 @@ static int smiapp_init(struct smiapp_sensor *sensor) > sensor->hwcfg->xshutdown); > return rval; > } > + > + sensor->xshutdown = gpio_to_desc(sensor->hwcfg->xshutdown); > } You can drop the devm_gpio_request_one() part and xshutdown from smiapp_platform_data. The gpiod consumer interface can also be used with data provided from boardfiles as documented in Documentation/gpio/board.txt, section "Platform Data". It basically works like assigning regulators to devices from platform data. You will obviously have to change every platform_device users of smiapp, but it looks like upstream has none: ~/linux/arch $ git grep smiapp_platform_data || echo "Not found" Not found -- Sebastian
Attachment:
signature.asc
Description: PGP signature