【发布时间】:2018-03-09 17:23:05
【问题描述】:
这是
of_get_named_gpio(child, "gpio-name", 0);
获取 GPIO 编号的正确方法?其中对应的设备树如下:
gpio-name = <&gpio0 21 0>;
我收到此错误:
探测失败,错误 -2
错误代码-2 代表什么?这是设备树解析错误吗?
【问题讨论】:
-
你检查过
dmesg的输出吗?您的of_get_named_gpio()调用应该有一些相关消息,可以解释实际错误是什么。 -
-ENOENT表示没有这样的 GPIO。 DT 以及其他资源提供(ACPI,内置设备属性)具有特定的 GPIO 模式,即<NAME>-gpios,您可以在其中使用<NAME>作为调用of_get_named_gpio(child, "<NAME>")的参数。无论如何,我强烈建议不要使用此类 API,而直接使用其 API 获取 GPIO。 -
@AndyShevchenko 但此类 API 已在内核中的现有驱动程序中使用。看到这个:lxr.free-electrons.com/source/drivers/leds/leds-ns2.c,你指的是什么API,可以发一下吗!
-
gpiod_*()类型的电话。 使用什么并不重要,因为新的 API不断出现。
标签: linux-kernel linux-device-driver device-tree