RK3568之pinctrl子系统和GPIO子系统
第1章 两个子系统的区别与联系1.1 pinctrl子系统主要功能引脚复用pin multiplexing和引脚配置pin configuration。引脚复用一个物理引脚可能有多个功能例如可以是GPIO、串口TX、I2C SCL等。pinctrl子系统负责选择引脚的功能即选择复用模式。引脚配置例如设置引脚的上下拉电阻、驱动强度、 slew rate等电气特性。引脚状态管理睡眠、默认、激活等不同状态下的配置在设备树中pinctrl的配置通常被组织在pinctrl节点中然后在具体设备节点中通过pinctrl-names和pinctrl-0等属性来引用。1.2 GPIO子系统主要功能当引脚被配置为GPIO功能时GPIO子系统提供了一套统一的接口来访问这些GPIO引脚例如设置方向输入/输出、读写值、设置中断等提供gpio_request()、gpio_direction_output()等接口。GPIO子系统会为每个GPIO控制器创建一个GPIO chip这个chip提供了一系列操作GPIO的函数如设置方向、读写等。然后这些GPIO可以通过一个全局的编号即gpio number来访问维护全局GPIO编号空间或者通过设备树中的gpio属性来指定。第2章pinctrl子系统2.1 pinctrl子系统的语法设备一般有三种状态【default, sleep“idle”】这几种状态都是固定的。实例分析一pinctrl-names default; pinctrl-0 pinctrl_hog_1;1. 使用pinctrl-names表示设备的状态这里仅仅是取了第0个状态来表示。2. 使用 pinctrl-0表示设备的第0个状态第0个状态使用的是【pinctrl_hog_1】标签的配置。实例分析二pinctrl-names default, wake up; pinctrl-0 pinctrl_hog_1; pinctrl-1 pinctrl_hog_2;1. 使用pinctrl-names表示设备的状态这里不仅是取了第0个状态来表示还取了第1个状态来表示。2. 使用 pinctrl-0表示设备的第0个状态第0个状态使用的是【pinctrl_hog_1】标签的配置。3. 使用 pinctrl-1表示设备的第1个状态第1个状态使用的是【pinctrl_hog_2】标签的配置。实例分析三pinctrl-names default, wake up,idle; pinctrl-0 pinctrl_hog_1; pinctrl-1 pinctrl_hog_2; pinctrl-2 pinctrl_hog_3;1. 使用pinctrl-names表示设备的状态这里不仅是取了第0个状态来表示而且取了第1个状态来表示还取了第2个状态来表示。2. 使用 pinctrl-0表示设备的第0个状态第0个状态使用的是【pinctrl_hog_1】标签的配置。3. 使用 pinctrl-1表示设备的第1个状态第1个状态使用的是【pinctrl_hog_2】标签的配置。4. 使用 pinctrl-2表示设备的第2个状态第2个状态使用的是【pinctrl_hog_3】标签的配置。实例分析四pinctrl-names default; pinctrl-0 pinctrl_hog_1 pinctrl_hog_2;1. 使用pinctrl-names表示设备的状态这里仅仅是取了第0个状态来表示。2. 使用 pinctrl-0表示设备的第0个状态这里的第0个状态需要两个标签的配置才能完成。【pinctrl_hog_1】和【pinctrl_hog_2】标签的共同完成状态0的配置。2.2pinctrl实战
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2418844.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!