[i.MX] 关于IOMUX PAD在驱动中实际代码是什么样的呢?

[复制链接]
1846|5
 楼主| 460077234 发表于 2016-1-30 16:09 | 显示全部楼层 |阅读模式
关于如何操作IO口和EIM如何配置的**看了一个多星期,最后都汇总为一个宏定义在/arch/arm/plat-mxc/include/mach/iomux-mx6q.h里面比如:
#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)  

可能是我看的太多了,现在已经蒙了。在/arch/arm/plat-mxc/include/mach/iomux-mx6q.h这个头文件里面把管脚的所有模式和功能都定义好了,那岂不是功能冲突了?? 我驱动里面包含了这头文件以后 程序该如何写才是正确的做法呢? 比如我只想用GPIO3_12 的IO功能那么这个头文件我该如何利用呢?或者说上边的#define 的那些代码应该放到哪里呢?  看了好几天我是真晕了,希望大家懂我意思的给指点迷津一下。。 谢谢。
 楼主| 460077234 发表于 2016-1-30 16:17 | 显示全部楼层
/arch/arm/plat-mxc/include/mach/iomux-mx6q.h 中的截图。 蒙圈了如何使用。

/arch/arm/plat-mxc/include/mach/iomux-mx6q.h

/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
 楼主| 460077234 发表于 2016-1-30 16:26 | 显示全部楼层
我再补充些
还有上述的头文件关于管脚功能的配置如何跟下边的函数配合使用呢?
       gpio_set_value(MYGPIO3_12, 1);
       gpio_request(MYGPIO3_14, "mygpio14");
       gpio_direction_output(MYGPIO3_12, 1);
mini1986 发表于 2016-2-1 15:27 | 显示全部楼层
宏定义是宏定义,使用是使用,pin的功能复用不就是这样的么,你要使用什么功能将pin配置成相应功能即可......
ourgreatwall 发表于 2016-3-16 08:49 | 显示全部楼层
两者是分开来的,配置是配置,操作是操作。
kris_fei 发表于 2016-3-24 15:39 | 显示全部楼层
首先你先需要配置它是不是作为GPIO功能,然后才是使用它作为输入输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部