当前位置: 代码迷 >> 驱动开发 >> 驱动编译遇挫,求解决
  详细解决方案

驱动编译遇挫,求解决

热度:76   发布时间:2016-04-28 10:37:56.0
驱动编译遇挫,求大虾解决
本帖最后由 lingdulebaishi 于 2012-09-13 13:54:04 编辑
    飞凌Linux3.0.1里的drivers里找出来的led驱动,驱动没问题,仅作参考,主要是把C文件拿到内核外用我的Makefile编译,会出错,求解决
#include <linux/miscdevice.h>
#include <linux/delay.h>
#include <asm/irq.h>
//#include <mach/regs-gpio.h>
#include <mach/hardware.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/fs.h>
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/ioctl.h>
#include <linux/cdev.h>
#include <linux/string.h>
#include <linux/list.h>
#include <linux/pci.h>
#include <asm/uaccess.h>
#include <asm/atomic.h>
#include <asm/unistd.h>

#include <mach/map.h>
#include <mach/regs-clock.h>
#include <mach/regs-gpio.h>

#include <plat/gpio-cfg.h>
#include <mach/gpio-bank-e.h>
#include <mach/gpio-bank-m.h>

#define DEVICE_NAME "leds"

static long s3c6410_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
        switch(cmd) {
                unsigned tmp;
        case 0:
        case 1:
                 if (arg > 4) 
                 {
                         return -EINVAL;
                 }
                tmp = readl(S3C64XX_GPMDAT);
            
                if(cmd==0) //close light
                  { 
                        tmp &= (~(1<<arg));
                  }
                else  //open light
                  { 
                        tmp |= (1<<arg);
                  }

                writel(tmp,S3C64XX_GPMDAT);

                printk (DEVICE_NAME": %d %d\n", arg, cmd);
  相关解决方案