关于如何操作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 的那些代码应该放到哪里呢? 看了好几天我是真晕了,希望大家懂我意思的给指点迷津一下。。 谢谢。 |