我想知道“gpio指数”是什么意思。
这是我在of_gpio.h中看到的
/**
* of_get_named_gpio() - Get a GPIO number to use with GPIO API
* @np: device node to get GPIO from
* @propname: Name of property containing gpio specifier(s)
* @index: index of the GPIO
*
* Returns GPIO number to use with Linux generic GPIO API, or one of the
errno
* value on the error condition.
*/
static inline int of_get_named_gpio(struct device_node *np,
const char *propname, int index)
{
return of_get_named_gpio_flags(np, propname, index, NULL);
}
我无法理解其含义,因为我看不到任何函数正在使用“int index”。
答案 0 :(得分:0)
它是gpios列表的索引。在设备树中描述gpios时,您始终可以指定gpio引脚列表,它可以指定单个驱动程序,无论它只需要一个引脚还是多个引脚。
查看documentation,其中介绍了如何一般性地指定gpios:
使用GPIO的节点应使用一个或多个指定它们 属性,每个属性包含一个'gpio-list':
gpio-list ::= <single-gpio> [gpio-list] single-gpio ::= <gpio-phandle> <gpio-specifier> gpio-phandle : phandle to gpio controller node gpio-specifier : Array of #gpio-cells specifying specific gpio (controller specific)
使用引脚列表的驱动程序的一个很好的示例是gpio-matix-keyboard
,因此在其documentation中有一个示例:
row-gpios = <&gpio2 25 0
&gpio2 26 0
&gpio2 27 0>;
以及解析此内容的code:
for (i = 0; i < pdata->num_row_gpios; i++)
gpios[i] = of_get_named_gpio(np, "row-gpios", i);