1. 硬件连接图
2. S3C2440中如何操作GPIO口
手册中描述如上, 点亮LED,操作GPIO的步骤分为二步:
1. 首先配置GPIO口的功能GPXCON寄存器,可以配置某个GPIO口为输入/输出/中断功能
2. 配置GPIO口GPXDAT寄存为1或0
3. 如何点亮D10, D11, D12
由上面的电路图可以看出如下方式就可以操作LED:
GFP4/GFP5/GFP6输出0,则点亮对应的LED
GFP4/GFP5/GFP6输出1,则熄灭对应的LED
4. 驱动代码(First_drv.c)
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/arch/regs-gpio.h>
#include <asm/hardware.h>
#define FIRST_DRV_MAJOR 111
static struct class *first_drv_class;
static struct class_device *first_drv_class_dev;
volatile unsigned long *GPFCON = NULL;
volatile unsigned long *GPFDAT = NULL;
static int first_drv_open(struct inode *inode, struct file *file)
{
/* 配置 GPF4,5,6为输出 */
*GPFCON &= ~((