void __gpio_set_value(unsigned gpio, int value);//设置GPIO 对于有些挂载在I2C,SPI总线上的扩展GPIO,读写操作可能会导致睡眠,因此不能在中断函数中 使用。使用下面的函数以区别于正常的GPIO int gpio_get_value_cansleep(unsigned gpio);//读GPIO void gpio_set_value_cansleep(unsigned gpio, int value)...
int __gpio_get_value(unsigned gpio);//读GPIO 通常是inline函数 void __gpio_set_value(unsigned gpio, int value);//设置GPIO 对于有些挂载在I2C,SPI总线上的扩展GPIO,读写操作可能会导致睡眠,因此不能在中断函数中 使用。使用下面的函数以区别于正常的GPIO int gpio_get_value_cansleep(unsigned gpio);/...
gpio_get_value_cansleep: 函数原型:int gpio_get_value_cansleep(unsigned gpio) gpio_set_value_cansleep: 函数原型:void gpio_set_value_cansleep(unsigned gpio, int value) 可以使用 gpiod_cansleep() 函数分辨该引脚是否需要通过消息总线访问
使用下面的函数以区别于正常的GPIO int gpio_get_value_cansleep(unsigned gpio);//读GPIO void gpio_set_value_cansleep(unsigned gpio, int value);//写GPIO --- 这句话的意思:如果soc本身(比如100个)gpio不够用, 那么就要另外接一个gpio controller, 上面再提供额外的50个gpio,这个controller...
gpiod_get gpiod_get_array gpiod_get_array_optiona gpiod_get_direction gpiod_get_index gpiod_get_index_optiona gpiod_get_optional gpiod_get_raw_value gpiod_get_raw_value_can gpiod_get_value gpiod_get_value_canslee gpiod_is_active_low ...
gpiod_get_array_optiona gpiod_get_direction gpiod_get_index gpiod_get_index_optiona gpiod_get_optional gpiod_get_raw_value gpiod_get_raw_value_can gpiod_get_value gpiod_get_value_canslee gpiod_is_active_low gpiod_put gpiod_put_array ...
__gpio_set_value(gpio, value); } 当我们将GPIO的方向设置为输入时,可以使用上面的函数gpio_get_value()来获取当前的IO口电平值,当GPIO的方向设置为输出时,使用函数gpio_set_value()可以设置IO口的电平值。 static inline int gpio_cansleep(unsigned int gpio) ...
int gpio_get_value_cansleep(unsigned gpio);//读GPIO void gpio_set_value_cansleep(unsigned gpio, int value);//写GPIO 三、gpiolib.c关联芯片接口 以上为gpiolib.c的基本方法都是向下调用到对应芯片的gpio实现! 所以每个方法里面的实现都是通过 struct gpio_chip*chip 这个指针调用结构体中关联的相关接口...
legacy API:integer-based GPIO interface,形式为 gpio_xxx(),例如登录后复制void gpio_set_value(unsigned gpio, int value),不推荐使用该 API; 推荐API: descriptor-based GPIO interface,形式为 gpiod_xxx(),例如登录后复制void gpiod_set_value(struct gpio_desc *desc, int value),新添加的驱动代码一律采...
_set_debounce(unsigned gpio, unsigned debounce);extern int gpio_get_value_cansleep(unsigned gpio);extern void gpio_set_value_cansleep(unsigned gpio, int value);(linux/gpio.h)static inline int gpio_get_value(unsigned int gpio);static inline void gpio_set_value(unsigned int gpio, int value)...