mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
gpiolib: introduce devm_fwnode_gpiod_get_optional() wrapper
The helper makes it easier to handle optional GPIOs and simplifies the error handling code. Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de> Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://lore.kernel.org/r/20260126-gpio-devm_fwnode_gpiod_get_optional-v2-1-ec34f8e35077@pengutronix.de Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
committed by
Bartosz Golaszewski
parent
3a6a36a3fc
commit
364713741c
@@ -607,6 +607,42 @@ struct gpio_desc *devm_fwnode_gpiod_get(struct device *dev,
|
||||
flags, label);
|
||||
}
|
||||
|
||||
/**
|
||||
* devm_fwnode_gpiod_get_optional - obtain an optional GPIO from firmware node
|
||||
* @dev: GPIO consumer
|
||||
* @fwnode: handle of the firmware node
|
||||
* @con_id: function within the GPIO consumer
|
||||
* @flags: GPIO initialization flags
|
||||
* @label: label to attach to the requested GPIO
|
||||
*
|
||||
* This function can be used for drivers that get their configuration
|
||||
* from opaque firmware.
|
||||
*
|
||||
* GPIO descriptors returned from this function are automatically disposed on
|
||||
* driver detach.
|
||||
*
|
||||
* Returns:
|
||||
* The GPIO descriptor corresponding to the optional function @con_id of device
|
||||
* dev, NULL if no GPIO has been assigned to the requested function, or
|
||||
* another IS_ERR() code if an error occurred while trying to acquire the GPIO.
|
||||
*/
|
||||
static inline
|
||||
struct gpio_desc *devm_fwnode_gpiod_get_optional(struct device *dev,
|
||||
struct fwnode_handle *fwnode,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags,
|
||||
const char *label)
|
||||
{
|
||||
struct gpio_desc *desc;
|
||||
|
||||
desc = devm_fwnode_gpiod_get_index(dev, fwnode, con_id, 0,
|
||||
flags, label);
|
||||
if (IS_ERR(desc) && PTR_ERR(desc) == -ENOENT)
|
||||
return NULL;
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
struct acpi_gpio_params {
|
||||
unsigned int crs_entry_index;
|
||||
unsigned short line_index;
|
||||
|
||||
Reference in New Issue
Block a user