Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2977640
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: LINUX

2014-09-13 14:11:49

原文地址:

1. 引言 
1.1. 编写目的 
本文档主要介绍pinctrl接口使用方法。 
1.2. 适应范围 
硬件平台:A33 
软件版本:Linux-3.4及后续内核版本 
1.3. 相关人员 
本文档可供系统维护人员、驱动开发人员和测试人员参考。  

2. pinctrl子系统 
2.1. 概述 
许多Soc内部都包含pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。 
在软件方面,linux内核中提供了pinctrl子系统,目的是为了统一各SoC厂商的pin脚管理,避免各SoC厂商各自实现相同的pin脚管理子系统,减少SoC厂商系统移植工作量。 
通过pinctrl驱动可以操作pin控制器,完成如下工作: 1. 枚举并且命名pin控制器可控制的所有引脚; 2. 提供引脚的复用能力; 
3. 提供配置引脚的能力,如驱动能力、上拉下拉和数据属性等; 
基于sunxi平台实现的pinctrl驱动,是在linux pinctrl驱动通用框架上进行实现与扩张的,平台实现的pinctrl驱动除了拥有以上功能之外,还具有如下功能: 1. 与gpio子系统的交互; 2. 实现pin中断; 
2.2. 内核配置 
A33平台默认选上pinctrl相关配置。Pinctrl子系统调试信息配置如下: Device Drivers ---> 
Pin controllers ---> 
[*] Debug PINCTRL calls 
2.3. sys_config.fex 
在sys_config中,gpio描述形式为: 
port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平> 1. 端口,例如:PA, PB, PC, …… 2. 组内序号,例如:0, 1, 2, …… 
3. 功能分配,指定pin脚功能,参考IC datasheet 
4. 内部电阻状态,包括三种状态,0:上拉下拉禁用(默认),1:上拉,2:下拉 5. 驱动能力,可配驱动能力四级,分别是0(默认),1,2,3 6. 输出电平,0或者1,只有当pin脚配成输出时才生效 
 
示例: 
[uart0] 
uart_used       = 1 uart_port       = 0 uart_type       = 2 
uart_tx         = port:PF2<4><1> uart_rx         = port:PF4<4><1>  
C
on
fi
den
ti
al


  


第 6 页 共 11 页 
 
 
2.4. 模块加载 
编进内核,无需加载。 
2.5. 依赖资源 
sys_config模块。  
3. pinctrl接口 
常用接口: 
? devm_pinctrl_get_select_default  
3.1. devm_pinctrl_get 
函数原型 struct pinctrl * evm_pinctrl_get(struct device *dev); 
函数功能 
根据设备获取pin操作句柄,所以的pin操作必须基于此pinctrl句柄。与pinctrl_get接口功能完全一样,只是devm_pinctrl_get会将申请的pinctrl句柄做记账,绑定到设备句柄信息中。  
设备驱动申请pin资源,推荐优先使用devm_pinctrl_get接口。 返回值 pinctrl句柄 
参数 dev:使用pin的设备,pinctrl子系统会通过设备名与pin配置信息匹配。 
 
3.2. devm_pinctrl_put 
函数原型 void devm_pinctrl_put(struct pinctrl *p); 
函数功能 释放pinctrl句柄,必须与devm_pinctrl_get配对使用。 返回值 无 
参数 p:pinctrl句柄 
 
3.3. pinctrl_lookup_state 
函数原型 struct pinctrl_state * pinctrl_lookup_state(struct pinctrl *p, const char *name); 函数功能 查找pin句柄指定状态下的状态句柄。 返回值 状态句柄 参数 p:pinctrl句柄 
name:状态名称,A33平台上只有default一种状态


阅读(5069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~