本文共 840 字,大约阅读时间需要 2 分钟。
/** * Convert a GPIO number to its descriptor */struct gpio_desc *gpio_to_desc(unsigned gpio){ struct gpio_device *gdev; unsigned long flags; spin_lock_irqsave(&gpio_lock, flags); list_for_each_entry(gdev, &gpio_devices, list) { if (gdev->base <= gpio && gdev->base + gdev->ngpio > gpio) { spin_unlock_irqrestore(&gpio_lock, flags); return &gdev->descs[gpio - gdev->base]; } } spin_unlock_irqrestore(&gpio_lock, flags); if (!gpio_is_valid(gpio)) WARN(1, "invalid GPIO %d\n", gpio); return NULL;}EXPORT_SYMBOL_GPL(gpio_to_desc);
/** * Get the GPIO descriptor corresponding to the given hw number for this chip. */struct gpio_desc *gpiochip_get_desc(struct gpio_chip *chip, u16 hwnum){ struct gpio_device *gdev = chip->gpiodev; if (hwnum >= gdev->ngpio) return ERR_PTR(-EINVAL); return &gdev->descs[hwnum];}
转载地址:http://jgqti.baihongyu.com/