在内核模块中使用GPIO

问题描述 投票:0回答:1

我在编写内核驱动程序方面很安静,而且有很多事情困扰着我。如果你能让我朝着正确的方向前进,那就太好了。

我正在为一个设备编写一个模块,必须通过将GPIO置于高状态来为其供电。

  1. 在Documentation / gpio / *中是文本,它们说我应该使用GPIO Framework的新的基于描述符的接口。但是怎么用呢?当我创建像#include这样的包含它编译时我可以运行驱动程序。但是使用gpiod_get(...)只返回fffffffffffffffe。它在某种程度上是有道理的,因为在linux / gpio / consumer.h中实现该函数是

static inline struct gpio_desc * __ must_check gpiod_get(struct device * dev,const char * con_id,enum gpiod_flags flags){return ERR_PTR(-ENOSYS); }

该函数的实现也存在于drivers / gpio / devres.c中。我该如何使用那个?

它看起来像我不应该使用该实现。

我希望你可以帮助我,因为它变得非常恼人。

linux kernel-module
1个回答
0
投票

事实证明,只需要包含文件gpio / gpiolib,它也可以提供额外的定义。

© www.soinside.com 2019 - 2024. All rights reserved.