MTK6572---8.gpio的配置

2470阅读 0评论2015-11-20 wangcong02345
分类:Android平台

1. 将gpio引脚设为中断模式
  1. mt_set_gpio_mode(GPIO27, GPIO_MODE_02);            //配置6572的pin27为MOD2就是EINT3
  2. mt_set_gpio_dir(GPIO27, GPIO_DIR_IN);              //配置6572的pin27方向为输入
  3. mt_set_gpio_pull_enable(GPIO27, GPIO_PULL_DISABLE);
  4. mt_eint_set_hw_debounce(3, 1);                    //不知道是什么意思
  5. mt_eint_registration(3, EINTF_TRIGGER_RISING, wakeup_irq_handler, true); //步骤如下
  6. mt_eint_unmask(3);
1.1 为什么GPIO_MODE_02是中断模式呢?
这个得用DrvGen.exe打开./mediatek/custom/hqunited72_we_72_kk/kernel/dct/dctcodegen.dws
找到GPIO27,可以看到上面标着2:EINT3

1.2 中断号是怎么来的
同上面1.1 dct中看到2:EINT3,所以3就是GPIO27的中断号
1.3 解释mt_eint_registration的参数
  1. void mt_eint_unmask(unsigned int line);
  2. void mt_eint_mask(unsigned int line);
  3. void mt_eint_set_hw_debounce(unsigned int eintno, unsigned int ms);
  4. void mt_eint_registration(unsigned int eint_num, unsigned int flag, void (EINT_FUNC_PTR) (void), unsigned int is_auto_umask);
eint_num  -->中断号
flag --> 上升沿还是下降沿触发
PTR-->中断处理函数,定义是  void func_nam(void)
auto_umake--> 注意这儿需要一定要填true,否则即使调用mt_eint_unmsak也不管用



2.将gpio引脚设为gpio模式
  1. mt_set_gpio_mode(pmt6261->gpio_power, GPIO_MODE_GPIO);
  2. mt_set_gpio_dir(pmt6261->gpio_power, GPIO_DIR_OUT);
  3. mt_set_gpio_out(pmt6261->gpio_sim_hotplug, GPIO_OUT_ONE);




上一篇:MTK6572---7.LCM的更换
下一篇:MTK6572---9.wakelock及工作队列的使用