S3C6410的ADC驱动问题
IKONE 2010-12-16 04:00:53 在华恒的S3C6410开发板上写查询式ADC驱动,我发现启动AD转换后ADCCON的最高位ECFLG始终为0,按手册中的说,转换结束后应该为1不是吗?我运行这个程序接收的值一直是固定的0x1ff,也不对 貌似AD没有工作 设置如下:
ts_base= ioremap(S3C2410_PA_ADC,0x20);
writel(0x00, ts_base+S3C2410_ADCTSC);
writel( 0x3FC4,ts_base+S3C2410_ADCCON);
struct ADC_DEV adcdev;
copy_from_user(&adcdev, (struct ADC_DEV *)buf, count);
tmp = S3C2410_ADCCON_PRSCEN | PRSCVL(adcdev.prescale) | ADC_INPUT(adcdev.channel);
tmp = readl(ts_base+S3C2410_ADCCON) | 0x01; //start AD converdo
writel( tmp, ts_base+S3C2410_ADCCON);
//do{
//tmp = readl(ts_base+S3C2410_ADCCON);
//}while(!(tmp&S3C2410_ADCCON_ECFLG));
data = (readl(ts_base+S3C2410_ADCDAT0) & 0x3ff);
我没有卸载板子本身自带的触摸屏驱动,我不确定编译内核的哪些选项,就一直没动,不知道是不是这个冲突?
tmp的值设置后一直为0x7f01