1. 将gpio引脚设为中断模式
-
mt_set_gpio_mode(GPIO27, GPIO_MODE_02); //配置6572的pin27为MOD2就是EINT3
-
mt_set_gpio_dir(GPIO27, GPIO_DIR_IN); //配置6572的pin27方向为输入
-
mt_set_gpio_pull_enable(GPIO27, GPIO_PULL_DISABLE);
-
mt_eint_set_hw_debounce(3, 1); //不知道是什么意思
-
mt_eint_registration(3, EINTF_TRIGGER_RISING, wakeup_irq_handler, true); //步骤如下
-
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的参数
-
void mt_eint_unmask(unsigned int line);
-
void mt_eint_mask(unsigned int line);
-
void mt_eint_set_hw_debounce(unsigned int eintno, unsigned int ms);
-
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模式
-
mt_set_gpio_mode(pmt6261->gpio_power, GPIO_MODE_GPIO);
-
mt_set_gpio_dir(pmt6261->gpio_power, GPIO_DIR_OUT);
-
mt_set_gpio_out(pmt6261->gpio_sim_hotplug, GPIO_OUT_ONE);
阅读(2095) | 评论(0) | 转发(0) |