转自——hantown原创
做S3C2410的驱动,下面几个文件是必须去认真关注的:
include/asm-arm/arch-s3c2410/irqs.h定义了中断相关的各种宏
include/asm-arm/arch-s3c2410/regs-gpio.h定义了各种GPIO
arch/arch/arm/plat-s3c24xx/gpio.c 定义了各种GPIO操作函数
arch/arch/arm/plat-s3c24xx/devs.c定义了s3c24XX平台下的各种platform_device和resource资源;如果在这里找不到资源,可以自己用struct resource XXXXX_resource ,
和struct platform_device platform_device_XXXXX= {
.name = "ST2410_XXXXX",
.id = 1,
.num_resources = ARRAY_SIZE( XXXXX_resource ),
.resource = XXXXX_resource ,
};
来定义
//define in file include/asm-arm/arch-s3c2410/irqs.h
//#define IRQ_EINT0 S3C2410_IRQ(0) /* 16 */
//#define S3C2410_IRQ(x) ((x) + S3C2410_CPUIRQ_OFFSET)
//#define S3C2410_CPUIRQ_OFFSET (16)
//define in file include/asm-arm/arch-s3c2410/regs-gpio.h
//#define S3C2410_GPF0 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 0)
//#define S3C2410_GPF0_INP (0x00 << 0)
//#define S3C2410_GPF0_OUTP (0x01 << 0)
//#define S3C2410_GPF0_EINT0 (0x02 << 0) setup GPF0 is EINT0,Falling edge triggered
//#define S3C2400_GPF0_RXD0 (0x02 << 0)
//the function defined in file arch/arch/arm/plat-s3c24xx/gpio.c
//s3c2410_gpio_setpin(gpio, value);setup value of XX pin
//extern int s3c2410_gpio_irq2pin(unsigned int irq);get pin of XX irq
//unsigned int s3c2410_gpio_getpin(unsigned int pin);get vlaue of XX pin