ST MP157 设备树及驱动开发-GPIO综合

353 阅读1分钟

1 寄存器底层配置模式

1.1 寄存器说明

image.png image.png image.png

1.1 设备树

image.png image.png

1.2 驱动开发(摘录)

image.png image.png image.png

2 pinctrl和gpio子系统开发

2.1 pinctrl和gpio原理

  • pinctrl 子系统要根据你提供的信息来配置 PIN 功能,一般会在设备树里面创建一个节点来描述PIN的配置信息。打开stm32mp151.dtsi文件,找到一个叫做 pinctrl 的节点:
  • “gpio-controller”表示 gpioi 节点是个 GPIO 控制器,每个 GPIO 控制器节点必须包含“gpio-controller”属性。“#gpio-cells”属性和“#address-cells”类似,#gpio-cells 应该为 2,表示一共有两个 cell,第一个 cell 为 GPIO 编号,比如“&gpioi 0”就表示 PI0。第二个 cell 表示 GPIO 极性,如果为 0(GPIO_ACTIVE_HIGH)的话表示高电平有效,如果为 1(GPIO_ACTIVE_LOW)的话表示低电平有效。 image.png

2.2 硬件电路

image.png

2.3 设备树

  • 自定义LED image.png
  • 系统自带LED image.png image.png image.png
  • 运行测试 image.png image.png

2.4 驱动开发(摘录)

image.png image.png image.png image.png

3 蜂鸣器

3.1 硬件电路

image.png

3.2 设备树

image.png

  • 启动成功以后进入“/proc/device-tree”目录中查看“beep”节点是否存在 image.png

3.3 驱动开发(摘录)

image.png image.png

4 按键输入

4.1 硬件电路

image.png

4.2 设备树

image.png

4.3 驱动开发(摘录)

image.png image.png image.png

5 按键输入中断

5.1 设备树

image.png

5.2 驱动开发(摘录)

image.png image.png image.png image.png image.png