OKMX6 GPIO驱动学习

IMX6的gpio驱动。如果是通过像单片机一样通过寄存器来控制,过于复杂,寄存器的含义难以理解。好在linux提供一套函数。方便我们设置gpio输出状态和读取gpio状态。

一:先设置imx6 引脚为GPIO模式。

     int mxc_iomux_v3_setup_pad(iomux_v3_cfg_t pad)

   该函数的输入参数就是board-mx6q_c_sabresd.h或者board-mx6dl_c_sabresd.h 

文件中的宏定义。

因为board-mx6q_c_sabresd.c文件中包含宏

#include "board-mx6q_c_sabresd.h"
#include "board-mx6dl_c_sabresd.h"

比如你要设置的引脚是EIM_A20。你看这个pad

有很多功能定义。

#define MX6DL_PAD_EIM_A20__WEIM_WEIM_A_20                                      \
        IOMUX_PAD(0x04F0, 0x0120, 0, 0x0000, 0, MX6DL_WEIM_NOR_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__IPU1_DISP1_DAT_15                                   \
        IOMUX_PAD(0x04F0, 0x0120, 1, 0x0000, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__IPU1_CSI1_D_15                                      \
        IOMUX_PAD(0x04F0, 0x0120, 2, 0x089C, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__MIPI_CORE_DPHY_TEST_OUT_19                          \
        IOMUX_PAD(0x04F0, 0x0120, 4, 0x0000, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__GPIO_2_18                                           \
        IOMUX_PAD(0x04F0, 0x0120, 5, 0x0000, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__TPSMP_HDATA_2                                       \
        IOMUX_PAD(0x04F0, 0x0120, 6, 0x0000, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__SRC_BT_CFG_20                                       \
        IOMUX_PAD(0x04F0, 0x0120, 7, 0x0000, 0, NO_PAD_CTRL)


#define MX6DL_PAD_EIM_A20__EPDC_PWRCTRL_2                                      \
        IOMUX_PAD(0x04F0, 0x0120, 8, 0x0000, 0, NO_PAD_CTRL)

这里我们选择MX6DL_PAD_EIM_A20__GPIO_2_18,这个就是把EIM_A20设置为gpio。

所以我们通过  mxc_iomux_v3_setup_pad(MX6DL_PAD_EIM_A20__GPIO_2_18);

来设置EIM_A20为gpio功能。

二:通过  gpio_direction_output  来设置GPIO为输出,通过gpio_set_value来设置输出值。

三:通过gpio_direction_input来设置GPIO为输入。通过gpio_get_value来获取输入 电平。

上面四个函数的参数就是 引脚编号,这里输入IMX_GPIO_NR(2,18)---这里的参数2和8来源 MX6DL_PAD_EIM_A20__GPIO_2_18.

基本就这么简单完成imx6的GPIO操作。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值