October 2017
Intermediate to advanced
586 pages
14h 8m
English
With the new descriptor-based GPIO interface, a GPIO is characterized by a coherent struct gpio_desc structure:
struct gpio_desc {
struct gpio_chip *chip;
unsigned long flags;
const char *label;
};
You should use the following header to be able to use the new interface:
#include <linux/gpio/consumer.h>
With the descriptor-based interface, prior to allocating and taking the ownership of GPIOs, those GPIOs must have been mapped somewhere. By mapped, I mean they should be assigned to your device, whereas, with the legacy integer-based interface, you just have to fetch a number anywhere and request it as a GPIO. Actually, there are three kinds of mapping in the kernel: