打印
[i.MX]

【经验分享】飞思卡尔IMX6处理器的GPIO配置方式

[复制链接]
16454|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 FSL_TICS_A 于 2014-3-25 17:05 编辑

在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样:
#define MX6Q_PAD_GPIO_19__GPIO_4_5                              \
                                (_MX6Q_PAD_GPIO_19__GPIO_4_5| MUX_PAD_CTRL(NO_PAD_CTRL))
其中_MX6Q_PAD_GPIO_19__GPIO_4_5定义为:
  #define _MX6Q_PAD_GPIO_19__GPIO_4_5         \  
         IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)
这个IOMUX_PAD宏是定义GPIO的关键宏,其原型为:
#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs,   
       _sel_input, _pad_ctrl)
IOMUX_PAD宏有6个参数,每个参数的意思是:
  
参数
  
  
含义
  
  
_pad_ctrl_ofs  
  
  
控制寄存器的偏移地址(16进制)
  
  
_mux_ctrl_ofs
  
  
MUX控制寄存器的偏移地址(16进制), 用于选择引脚的功能
  
  
_mux_mode
  
  
MUX模式,bit0~3,范围0~7
  
  
_select_input_ofs   
  
  
SELECT_INPUT寄存器偏移地址(16进制)
  
  
_select_input  
  
  
Daisy Chain模式, bit0~1,范围0~3
  
  
_pad_ctrl
  
  
bits to be set in register _pad_ctrl_ofs for  configuration selection
  
具体的含义要结合IMX6数据手册【Chapter 36 IMOUX Controller(IOMUXC)】的内容。
以下就GPIO_19这个管脚的配置进行说明:
1_pad_ctrl_ofs
找到数据手册:
从上图可知:_pad_ctrl_ofs = 0x624
2_mux_ctrl_ofs_mux_mode
找到数据手册的内容:
如上图,_mux_ctrl_ofs取值为0x254,_mux_mode范围为000~110
只有_mux_mode = 0时,_select_input_ofs和_select_input才有效,其余时候_select_input_ofs和_select_input 都为0。
3_select_input_of_select_input
当_mux_mode = 0时,_select_input_ofs的取值需参考数据手册:
此时_select_input_ofs=0x8e8,_select_input=0x1
4_pad_ctrl
_pad_ctrl一般取值为0
综上所述,GPIO_19的配置宏定义如下:
  #define _MX6Q_PAD_GPIO_19__**_COL_5            \  
         IOMUX_PAD(0x0624, 0x0254, 0, 0x08E8, 1, 0)  
#define _MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT     \  
         IOMUX_PAD(0x0624, 0x0254, 1, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__SPDIF_OUT1           \  
         IOMUX_PAD(0x0624, 0x0254, 2, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__CCM_CLKO         \  
         IOMUX_PAD(0x0624, 0x0254, 3, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__ECSPI1_RDY           \  
         IOMUX_PAD(0x0624, 0x0254, 4, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__GPIO_4_5         \  
         IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__ENET_TX_ER           \  
         IOMUX_PAD(0x0624, 0x0254, 6, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__SRC_INT_BOOT         \  
         IOMUX_PAD(0x0624, 0x0254, 7, 0x0000, 0, 0)

以上的宏定义来自imx6的linux源码的arm/arch/palt-mxc/include/mach/iomux-mx6q.h
希望对大家有帮助~~

相关帖子

沙发
FSL_TICS_A| | 2014-2-26 16:52 | 只看该作者
很好的分享,必须顶一下!!

使用特权

评论回复
板凳
FSL_TICS_Rita| | 2014-3-5 10:49 | 只看该作者
好贴,很实用,顶一下~~

使用特权

评论回复
地板
williamhwf2011| | 2014-3-8 20:32 | 只看该作者
很详细,赞一个

使用特权

评论回复
5
afei8856| | 2014-3-10 15:30 | 只看该作者
不错,顶一下

使用特权

评论回复
6
FSL_TICS_Rita| | 2014-3-11 12:56 | 只看该作者
感谢大家对飞思卡尔的关注和支持,同时欢迎大家在论坛总创贴大家一起交流学习~~

使用特权

评论回复
7
a151937404| | 2014-4-30 21:07 | 只看该作者
这个数据手册哪有的下载 ?

使用特权

评论回复
8
bestray| | 2014-6-30 20:23 | 只看该作者
。如果把GPIO配置以及相应驱动操作一起示例说明一下的话,那就更好了~~

使用特权

评论回复
9
gaoqian0529| | 2014-7-1 13:45 | 只看该作者
本帖最后由 gaoqian0529 于 2014-7-1 15:51 编辑

楼主好,请问把GPIO配置成悬浮输入状态,怎么设置?我查到imx6 管脚配置
谢谢

QQ图片20140701134707.jpg (115.28 KB )

QQ图片20140701134707.jpg

使用特权

评论回复
10
aeromoon| | 2014-7-31 10:23 | 只看该作者
顶一下

使用特权

评论回复
11
da_jun| | 2014-10-21 23:02 | 只看该作者
请教一个问题:
我现在用 IMX_GPIO_NR(4, 15) 配置成GPIO_4_15 模式当作 Volice-的按键,通过看pdf发现这个引脚也是UART5的CTS引脚,我按照pdf将这个引脚配置成了MX6Q_PAD_KEY_ROW4__GPIO_4_15,可是这个引脚一直是低电平,外界按键的点击不能改变电平,导致android系统进入安装模式,哪位大侠指导一下啊?!
还有就是我一直没有发现IMX_GPIO_NR(4, 15)这个配置是怎么和MX6Q_PAD_KEY_ROW4__GPIO_4_15联系到一起的?
望大侠一并指教!!

使用特权

评论回复
12
xlb7679| | 2014-12-23 17:35 | 只看该作者
请叫一个问题,,imx6在申请中断的时候  request_irq(int  irq_no,……)函数,这里的irq_no可不可以静态的分配,就是比如我要用98号中断,直接给传98给irq_no,可是返回值ret一直是 -22   ,假如要用gpio_to_irq(unsigned gpio)函数来获取,参数怎么填,这个参数unsigned gpio也是在iomux-mx6q.h中找宏定义吗?真心求解答

使用特权

评论回复
13
mini1986| | 2015-5-8 11:09 | 只看该作者
好贴,收藏了......谢谢分享......

使用特权

评论回复
14
tianhaolan| | 2015-8-11 09:04 | 只看该作者
很好的分享,必须顶一下!!

使用特权

评论回复
15
wolfkinwolfkin| | 2015-12-11 09:04 | 只看该作者
必须mark

使用特权

评论回复
16
wolfkinwolfkin| | 2015-12-11 16:16 | 只看该作者
好帖,强势围观

使用特权

评论回复
17
阿基米东| | 2017-4-19 17:56 | 只看该作者
怎么配置成可以通过 /sys/ 来操作 GPIO?

使用特权

评论回复
18
yushan210| | 2017-9-7 13:05 | 只看该作者
imx6ul  有 IMX_GPIO_NR 吗?

使用特权

评论回复
19
梦幻情缘| | 2018-3-16 18:10 | 只看该作者
你好,正在学imx,刚开始,想请教一下,我在用IOMUX_PAD这个函数,编译时报错这个函数没有定义,但是内核源码里面是有的,这是怎么回事?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:   Freescale Semiconductor     i.MX Community    i.MX 中文论坛

29

主题

730

帖子

21

粉丝