在linux当中,由于其结构复杂,系统庞大,对gpio的操作与普通单片机有所不同。
linux当中,对gpio的操作都已经向层封装好了独立的api接口,操作时只需要调用对应接口即可。
常用接口如下:
1 static inline int gpio_get_value(unsigned int gpio) 2 { 3 return __gpio_get_value(gpio); 4 } 5 6 static inline void gpio_set_value(unsigned int gpio, int value) 7 { 8 __gpio_set_value(gpio, value); 9 } 10 11 static inline int gpio_to_irq(unsigned int gpio) 12 { 13 return __gpio_to_irq(gpio); 14 } 15 16 struct device; 17 18 int devm_gpio_request(struct device *dev, unsigned gpio, const char *label); 19 20 int devm_gpio_request_one(struct device *dev, unsigned gpio, unsigned long flags, const char *label); 21 22 void devm_gpio_free(struct device *dev, unsigned int gpio); 23 24 static inline bool gpio_is_valid(int number) 25 26 { 27 return number >= 0 && number < ARCH_NR_GPIOS; 28 }
(转载自:https://www.cnblogs.com/Cqlismy/p/11891789.html)