一、前言
在上节,我们提供了驱动中gpio子系统相关的API函数,主要用来申请释放gpio、设置gpio输入输出、获取设置gpio的值。
我们进行上述设置的前提是:在驱动程序中需要读取 gpio 属性内容。为此,Linux 内核提供了几个与 GPIO 有关的 OF 函数。
二、gpio相关的OF函数
1、of_gpio_named_count 函数
用于统计设备树某个属性里面定义了几个 GPIO 信息,要注意的是空的 GPIO 信息也会被统计到:
int of_gpio_named_count(struct device_node *np, const char *propname)
- np:设备节点。
- propname:要统计的 GPIO 属性。
- 返回值:正值,统计到的 GPIO 数量;负值,失败。
2、of_gpio_count 函数
of_gpio_named_count 函数可以统计任意属性的 GPIO 信息,而此函数统计的是 “gpios” 这个属性的 GPIO 数量:
int of_gpio_count(struct device_node *np)
- np:设备节点。
- 返回值:正值,统计到的 GPIO 数量;负值,失败。
3、of_get_named_gpio 函数
此函数获取 GPIO 编号,因为 Linux 内核中关于 GPIO 的 API 函数都要使用 GPIO 编号,此函数会将设备树中类似<&gpio5 7 GPIO_ACTIVE_LOW>的属性信息转换为对应的 GPIO 编号,此函数在驱动中使用很频繁!文章来源:https://www.toymoban.com/news/detail-630677.html
int of_get_named_gpio(struct device_node *np, const char *propname, int index)文章来源地址https://www.toymoban.com/news/detail-630677.html
- np:设备节点。
- propname:包含要获取 GPIO 信息的属性名。
- index:GPIO 索引,因为一个属性里面可能包含多个 GPIO,此参数指定要获取哪个 GPIO的编号,如果只有一个 GPIO 信息的话此参数为 0。
- 返回值:正值,获取到的 GPIO 编号;负值,失败。
到了这里,关于【Linux驱动开发】013 与gpio相关的OF函数 一、前言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!