|
哈囉!!大家好
我有一個問題,想請教大家。
我的硬體平台是s3c2410 作業系統是linux (version 2.6.11.7)
我在寫ADC Driver的時候遇到一個問題。
我做了以下的動作:
1.在 kernel/arch/arm/mach-s3c2410/s3c2410.c中
加入
static struct map_desc s3c2410_iodesc[] __initdata =
{
IODESC_ENT(USBHOST),
IODESC_ENT(CLKPWR),
IODESC_ENT(LCD),
IODESC_ENT(UART),
IODESC_ENT(TIMER),
IODESC_ENT(WATCHDOG),
IODESC_ENT(RTC),
===> IODESC_ENT(ADC),
};
2.然後我在adc driver中
利用writel(value,S3C2410_VA_ADC+offset)
S3C2410_VA_ADC: 將實體位址map到虛擬位址的值
offset:
然後我再利用
printk("ADCCON : %x\n",__raw_readl(S3C2410_VA_ADC+offset));
問題就是我無法得到我預期寫入的value,他的值還是跟spec.的預設值一樣。
利用同樣的方法我可以寫入watchdog暫存器。 |
|