我在编写内核驱动程序方面很安静,而且有很多困扰我的事情。如果你能让我朝着正确的方向前进,那就太好了。
我正在为设备编写一个模块,必须通过将GPIO置于高状态来为其供电。
在 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){ 返回ERR_PTR(-ENOSYS); }
该函数的实现也存在于 drivers / gpio / devres.c 中。我该如何使用那个?
在我看来,我不应该使用该实现。
我希望你可以帮助我,因为它真的很烦人。
答案 0 :(得分:0)
事实证明,只需要包含文件 gpio / gpiolib ,这会提供额外的定义。