/**
* Convert a GPIO name to its descriptor
*/
static struct gpio_desc *gpio_name_to_desc(const char * const name)
{
struct gpio_device *gdev;
unsigned long flags;
spin_lock_irqsave(&gpio_lock, flags);
list_for_each_entry(gdev, &gpio_devices, list) {每个设备处理
int i;
for (i = 0; i != gdev->ngpio; ++i) {每个GPIO处理
struct gpio_desc *desc = &gdev->descs[i];
if (!desc->name || !name)
continue;
if (!strcmp(desc->name, name)) {
spin_unlock_irqrestore(&gpio_lock, flags);
return desc;
}
}
}
spin_unlock_irqrestore(&gpio_lock, flags);
return NULL;
}
从设备中的每一个GPIO名字都要进行匹配,限显然这种效率很低。
转载请注明原文地址: https://ju.6miu.com/read-17912.html