linux-2.6.33 ADC驱动

#define adc_con (unsigned long)ioremap(0x58000000,4)
iowrite32(ioread32(adc_con)|(1<<14)|(0x5<<6),adc_con);
printk("%ld ",ioread32(adc_con));
iowrite32(ioread32(adc_con)|0x1,adc_con);

//printk("%ld",__raw_readl(adc_con));
//do{
// tmp = readl(adc_con);
//}while(((unsigned int)tmp)&0x1);
printk("%ld ",ioread32(adc_con));
//while(!(__raw_readl(adc_con)&0x8000));
printk("yes ok");

打印的数据都是32709 32709 32709,没有变化,为什么?
111111111000101

作者: marshmallow1005   发布时间: 2011-05-08

ioremap出来的是虚拟地址,ioread32需要的是物理地址

作者: steven_miao   发布时间: 2011-05-09