Getting the most out of the GPIO consumer interface
The GPIO is a feature, or a mode in which a pin can operate, in terms of hardware. It is nothing more than a digital line that may be used as an input or output and has just two values (or states): 1 for high or 0 for low. The kernel's GPIO subsystem includes all of the functions you'll need to set up and manage GPIO lines from within your driver.
Before using a GPIO from within the driver, it must first be claimed by the kernel. It's a means to take control of a GPIO and prohibit other drivers from using it, as well as preventing the controller driver from being unloaded.
After claiming control of the GPIO, you can do the following:
- Set the direction and, if needed, set the GPIO configuration.
- If it's being used as an output, start toggling its output state (driving the line high or low).
- If used as input, set the debounce-interval if needed and read the state. For a GPIO line mapped to an...