📄 gpio.c~
字号:
#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/sched.h>#include <linux/mm.h>#include <asm/page.h>#include <linux/poll.h>#include <linux/kdev_t.h>#include <asm/semaphore.h>#include <asm/arch/pxa-regs.h>#include <linux/slab.h>#include <linux/delay.h>#include <asm/uaccess.h>#include <linux/i2c.h>//#include <asm/arch/gpio.h>#include <asm/arch/ssp.h>//#include <asm/arch/mfp.h>#include <asm/arch/hardware.h>#include <asm/dma.h>#include <linux/dma-mapping.h>#include "IF101_Operation.h"#include "IF101_Communication.h"/************************************************************************** * * Declaration for GPIO_INT part *****************************************************************************/#define INNODEV_IRQ IRQ_GPIO(9)#define INNODEV_INTR_PIN 9#if 0static struct mhn_pin_config inno_pins[] = { MHN_MFP_CFG("IF101 INT", INNODEV_INTR_PIN, MFP_AF0, MFP_DS03X, 0, MFP_LPM_PULL_HIGH, MFP_EDGE_NONE),};#endifINNO_RETURN_CODE INNO_GPIO_INT_Init(int enable, void *handler){#if 1 if(enable == 1){// mhn_mfp_set_configs(inno_pins, ARRAY_SIZE(inno_pins));// mhn_gpio_set_direction(INNODEV_INTR_PIN, GPIO_DIR_IN); pxa_gpio_mode(INNODEV_INTR_PIN | GPIO_IN); if(request_irq(INNODEV_IRQ, handler, 0, "innodev", NULL)) { printk("register %d interrupt handler failed.\r\n", INNODEV_IRQ); return -EIO; } set_irq_type(INNODEV_IRQ, IRQT_FALLING); } else{ free_irq(INNODEV_IRQ, NULL); }#endif return INNO_NO_ERROR;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -