免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1140 | 回复: 0
打印 上一主题 下一主题

第一个驱动(adc) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-16 17:15 |只看该作者 |倒序浏览
//只是根据touchscreen和led驱动改的而已,呵呵。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DEVICE_NAME    "adc"
#define ADC_MAJOR 238
struct s3c2410_ts_mach_info {
       int             delay;
       int             presc;
       int             oversampling_shift;
}adc_info = {0xff,19};
static void __iomem *base_addr;
static inline void init_adc_gpio(void)
{
/*
    for (i = 0; i  7) { //只能选择0~7八个通道之一
            return -EINVAL;
        }
        val = readl(base_addr+S3C2410_ADCCON);
        val &= ~S3C2410_ADCCON_MUXMASK;
        val |= S3C2410_ADCCON_SELMUX(arg);
        writel(val,base_addr+S3C2410_ADCCON);
//        printk(DEVICE_NAME "ADCCON:%x\n",val);
        return 0;
    default:
        return -EINVAL;
    }
}
static struct file_operations my_adc_fops = {
    .owner    =    THIS_MODULE,
    .ioctl    =    my_adc_ioctl,
};
static struct clk    *adc_clock;
static int __init my_adc_init(void)
{
    int ret;
    int val;
    struct s3c2410_ts_mach_info *info = &adc_info;
    ret = register_chrdev(ADC_MAJOR, DEVICE_NAME, &my_adc_fops);
    if (ret presc&0xff) > 0)
        writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\
                 base_addr+S3C2410_ADCCON);
    else
        writel(0,base_addr+S3C2410_ADCCON);
//选择normal模式,而不是stadby模式
    val = readl(base_addr+S3C2410_ADCCON);
    val &= ~S3C2410_ADCCON_STDBM;
    writel(val,base_addr+S3C2410_ADCCON);
//不使用touchscreen
    val = readl(base_addr+S3C2410_ADCTSC);
    val &= (1


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93291/showart_2072080.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP