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)...
void gpiod_set_ raw_value_cansleep(struct gpio_desc *desc, int value) int gpiod_direction_ output_raw(struct gpio_desc *desc, int value)1 2 3 4 5 6 7 8 9 10 11 raw- value的意思就是不在乎DTS里面的ACTIVE,我set高电平,就是高电平。 逻辑关系汇总如下: Function (example) active-low ...
当用户在用户空间用ehco把值写到value文件时,gpio_value_store会被调用,该函数的作用跟gpio_value_show相反,是把用户空间传递过来的值写到GPIO控制器的寄存器。调用路径为gpio_set_value_cansleep()->gpio_to_chip()->chip->set。
gpiod_set_value_cansleep设置GPIO sda数据为0/1 gpiod_get_value_cansleep获取GPIO sda数据的值 static void i2c_gpio_setsda_val(void *data, int state) { struct i2c_gpio_private_data *priv = data; gpiod_set_value_cansleep(priv->sda, state); } static int i2c_gpio_getsda(void *data) ...
gpiod_set_value_cansleep(gc5025->reset_gpio, 1); 1. 因为DTS 里面的 active 状态是 GPIO_ACTIVE_LOW,所以这个代码输出的是 低电平 gpiod_set_value_cansleep(gc5025->reset_gpio, 0); 1. 输出的是高电平 这几个函数如下: int gpiod_get_raw_value(const struct gpio_desc *desc) ...
使用下面的函数以区别于正常的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...
__gpio_set_value(gpio, value); } 当我们将GPIO的方向设置为输入时,可以使用上面的函数gpio_get_value()来获取当前的IO口电平值,当GPIO的方向设置为输出时,使用函数gpio_set_value()可以设置IO口的电平值。 static inline int gpio_cansleep(unsigned int gpio) ...
(∫3472_device->dev,NULL,0,GPIOD_ASIS);gpiod2=gpiod_get_index(∫3472_device->dev,NULL,1,GPIOD_ASIS);gpiod3=gpiod_get_index(∫3472_device->dev,NULL,2,GPIOD_ASIS);gpiod_set_value_cansleep(gpiod1,1);gpiod_set_value_cansleep(gpiod2,1);gpiod_set_value_cansleep(gpiod3,1);...
gpiod_get_value() gpiod_set_value() gpiod_get_value_cansleep() gpiod_set_value_cansleep() 读写一组 gpio gpiod_get_array_value() gpiod_set_array_value() 获得gpio 对应的中断号 gpiod_to_irq() 相关要点: 以_cansleep 为后缀的函数是可能会睡眠的 API,不可以在 hard (non-threaded) IRQ...
int gpiod_get_value_cansleep(const struct gpio_desc *desc)void gpiod_set_value_cansleep(struct gpio_desc *desc, int value) #active-low和raw-value active-low & raw value 有些设备采用低电平有效的方式输出逻辑信号。此时低电平输出 1,高电平输出 0。此时可以通过访问 raw_value 的方式来访问实际...