gpio: add gpio descriptor initialization helper
Add a helper function gpio_desc_init() to initialize the gpio descriptor; with this function the flags will be always set to 0. It wasn't the case before this patch in dm_gpio_lookup_name. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:
parent
e3f3a121d8
commit
9f2b066cda
1 changed files with 19 additions and 8 deletions
|
@ -18,6 +18,22 @@
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gpio_desc_init() - Initialize the GPIO descriptor
|
||||||
|
*
|
||||||
|
* @desc: GPIO descriptor to initialize
|
||||||
|
* @dev: GPIO device
|
||||||
|
* @offset: Offset of device GPIO
|
||||||
|
*/
|
||||||
|
static void gpio_desc_init(struct gpio_desc *desc,
|
||||||
|
struct udevice *dev,
|
||||||
|
uint offset)
|
||||||
|
{
|
||||||
|
desc->dev = dev;
|
||||||
|
desc->offset = offset;
|
||||||
|
desc->flags = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gpio_to_device() - Convert global GPIO number to device, number
|
* gpio_to_device() - Convert global GPIO number to device, number
|
||||||
*
|
*
|
||||||
|
@ -41,9 +57,7 @@ static int gpio_to_device(unsigned int gpio, struct gpio_desc *desc)
|
||||||
uc_priv = dev_get_uclass_priv(dev);
|
uc_priv = dev_get_uclass_priv(dev);
|
||||||
if (gpio >= uc_priv->gpio_base &&
|
if (gpio >= uc_priv->gpio_base &&
|
||||||
gpio < uc_priv->gpio_base + uc_priv->gpio_count) {
|
gpio < uc_priv->gpio_base + uc_priv->gpio_count) {
|
||||||
desc->dev = dev;
|
gpio_desc_init(desc, dev, gpio - uc_priv->gpio_base);
|
||||||
desc->offset = gpio - uc_priv->gpio_base;
|
|
||||||
desc->flags = 0;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,8 +99,7 @@ int dm_gpio_lookup_name(const char *name, struct gpio_desc *desc)
|
||||||
if (!dev)
|
if (!dev)
|
||||||
return ret ? ret : -EINVAL;
|
return ret ? ret : -EINVAL;
|
||||||
|
|
||||||
desc->dev = dev;
|
gpio_desc_init(desc, dev, offset);
|
||||||
desc->offset = offset;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -772,9 +785,7 @@ static int gpio_request_tail(int ret, const char *nodename,
|
||||||
struct gpio_desc *desc, int flags,
|
struct gpio_desc *desc, int flags,
|
||||||
bool add_index, struct udevice *gpio_dev)
|
bool add_index, struct udevice *gpio_dev)
|
||||||
{
|
{
|
||||||
desc->dev = gpio_dev;
|
gpio_desc_init(desc, gpio_dev, 0);
|
||||||
desc->offset = 0;
|
|
||||||
desc->flags = 0;
|
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue