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 编号。
返回值: 无
ARM&Linux基础





