驱动Driver-GPIO子系统

GPIO子系统介绍

  • gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相应的 API 函数,比如设置 GPIO为输入输出,读取 GPIO 的值等。gpio 子系统的主要目的就是方便驱动开发者使用 gpio,驱动
    开发者在设备树中添加 gpio 相关信息,然后就可以在驱动程序中使用 gpio 子系统提供的 API函数来操作 GPIO,Linux 内核向驱动开发者屏蔽掉了 GPIO 的设置过程,极大的方便了驱动开发者使用 GPIO。

使用前提

  • 在配置GPIO引脚之前,需要配置好引脚的电器属性,也就是pinctrl子系统

设备树中GPIO信息

设备树中的 gpio 信息

  • 先设置引脚的电器属性,也就是pinctrl节点
  • 设置GPIO节点


  • gpio1组

  • 数据手册GPIO寄存器组

gpio 子系统 API 函数

1.gpio_request 函数

2.gpio_free 函数

3.gpio_direction_input 函数

4.gpio_direction_output 函数

5.gpio_get_value 函数


6.gpio_set_value 函数


设备树中添加 gpio 节点模板

1.创建 test 设备节点

2.添加 pinctrl 信息

3.添加GPIO属性信息


与GPIO相关的OF函数

of_gpio_named_count 函数

of_gpio_count 函数

of_get_named_gpio 函数


posted @ 2024-03-11 10:36  starc再起航  阅读(12)  评论(0编辑  收藏  举报