ARM&Linux基础
+ -

GPIO相关的OF函数

2025-11-25 19 0

of_gpio_named_count

of_gpio_named_count 返回任意定义的数组个数。

gpios = <0
    &gpio1 1 GPIO_ACTIVE_LOW
    0
    &gpio2 3 GPIO_ACTIVE_HIGH>

gpios定义了4 个 GPIO,但是有 2 个是空的,没有实际的含义。通过of_gpio_named_count 函数统计出来的 GPIO 数量就是4个。

of_gpio_count

of_gpio_count是特殊化的of_gpio_named_count

of_gpio_named_count(struct device_node *np,"gpios")

of_get_named_gpio

此函数获取 GPIO 编号。

int of_get_named_gpio(struct device_node *np,const char *propname,int index)
  • np:设备节点。
  • propname:包含要获取 GPIO 信息的属性名。
  • index: GPIO 索引,因为一个属性里面可能包含多个 GPIO,此参数指定要获取哪个 GPIO的编号,如果只有一个 GPIO 信息的话此参数为0.
  • 返回值: 正值,获取到的 GPIO 编号;负值,失败。
  //gpioled.led_gpio = of_get_named_gpio(gpioled.nd, "led-gpio", 0);
    led-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;//gpio1节点信息

gpio_direction_input 函数

此函数用于将指定 GPIO 设置为输入模式。

函数原型:

int gpio_direction_input(unsigned int gpio)

参数说明:

  • gpio:要设置为输入模式的 GPIO 编号。

返回值:

  • 0:设置成功
  • 负值:设置失败

gpio_direction_output 函数

此函数用于将指定 GPIO 设置为输出模式,并设置其初始输出值。

函数原型:

int gpio_direction_output(unsigned int gpio, int value)

参数说明:

  • gpio:要设置为输出模式的 GPIO 编号。
  • value:GPIO 的初始输出值。

返回值:

  • 0:设置成功
  • 负值:设置失败

函数原型:

void gpio_free(unsigned int gpio)

参数说明:

  • gpio:要释放的 GPIO 编号。

返回值:

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!