gpiodlib 模块:/linux/drivers/gpio/gpiolib.c /linux/drivers/gpio/gpiolib.c structgpio_desc *__must_checkgpiod_get(structdevice *dev,constchar*con_id,enumgpiod_flags flags){returngpiod_get_index(dev, con_id,0, flags); }/*** 声明外部引用 ***/EXPORT_SYMBOL_GPL(gpiod_get);...
gpiod_direction_output gpiod_direction_output_ gpiod_export gpiod_export_link 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...
int gpio_get_value_cansleep(unsigned gpio); /* GPIO OUTPUT, might sleep */ void gpio_set_value_cansleep(unsigned gpio, int value); 1. 2. 3. 4. 7、请求和释放GPIO口 此功能现在在好多平台上还未实现,通过以下方式访问 /* request GPIO, returning 0 or negative errno. * non-null labels m...
devm_gpiod_get_index; devm_gpiod_get_array;// 2.设置方向gpiod_direction_input; gpiod_direction_output;// 3.读值、写值gpiod_get_value; gpiod_set_value; // 4. 设为中断(如果必要)request_irq(gpiod_to_irq(gpio_desc)...);//将gpio转为对应的irq,然后注册该irq的中断handler // 5.释...
gpiod_direction_output gpiod_direction_output_ gpiod_export gpiod_export_link 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...
static void i2c_gpio_setscl_val(void *data, int state) { struct i2c_gpio_private_data *priv = data; gpiod_set_value_cansleep(priv->scl, state); } static int i2c_gpio_getscl(void *data) { struct i2c_gpio_private_data *priv = data; return gpiod_get_value_cansleep(priv->scl);...
struct gpio_descs *gpiod_get_array(struct device *dev,const char *con_id,enum gpiod_flags flags) 该函数返回一个GPIO描述结构体: struct gpio_descs {unsigned int ndescs;struct gpio_desc *desc[];} 一个GPIO描述符可以使用如下函数释放: ...
在Linux中,GPIO的值通常通过/sys/class/gpio目录下的文件来表示。每个GPIO引脚都对应一个目录,目录名通常是gpioX,其中X是GPIO引脚的编号。在这个目录下,有几个重要的文件用于获取和设置GPIO的值: direction:该文件用于设置GPIO的方向,即输入(input)或输出(output)。当GPIO作为输入时,可以通过读取value文件来获取其当...
在gpio 子系统中,用 struct gpio_desc 来描述一个 gpio 引脚,gpiod_xxx() 都是围绕着 strcut gpio_desc 进行操作的。 完整的接口定义位于 linux/gpio/consumer.h,大约共有 70个 API。 常用API: 获得/释放 一个或者一组 gpio: [devm]_gpiod_get*() [devm]_gpiod_put*() 设置/查询 输入或者输出 gpi...
#旧的GPIO使用实例 DTS文件 驱动文件调用 # 新的GPIOD文档 #头文件 我们需要包含头文件 #include <linux/gpio/consumer.h> 看头文件里面包含的函数列表 desc_to_gpio devm_get_gpiod_from_chi devm_gpiod_get devm_gpiod_get_array devm_gpiod_get_array_op devm_gpiod_get_index devm_gpiod_get_index...