S3C6410 EZ6410 ADC를 이용 하여 디바이스 드라이버를 작성 중에 있습니다.

 

근데 ADC 관련 Register에 값을 설정 하고 자 하는데 어떻게 정의된 Register에 설정을 하여야 하는지 궁금 합니다

.regs-adc.h 의 정의된 register에 설정 하면


#define S3C_ADCCON      S3C_ADCREG(0x00)
#define S3C_ADCTSC     S3C_ADCREG(0x04)
#define S3C_ADCDLY      S3C_ADCREG(0x08)
#define S3C_ADCDAT0      S3C_ADCREG(0x0C)
#define S3C_ADCDAT1      S3C_ADCREG(0x10)
#define S3C_ADCUPDN   S3C_ADCREG(0x14)
#define S3C_ADCMUX   S3C_ADCREG(0x18)
#define S3C_ADCCLRINT   S3C_ADCREG(0x18)
#define S3C_ADCCLRWK   S3C_ADCREG(0x20)
--------------------------------------------------------------

 writel(ad_prescal_reg, S3C_ADCCON );

 위와 같은 방법으로 설정 하면 kernel 부팅 시 잘못된 메모리 영역을 참조 한것 같은 메세지들로

kernel panic이 발생 합니다.

 

GPIO의 경우 아래와 같이 vertual Address 가 정의 되어 있어 실제 register Address 와 Mapping 되는 듯 싶은데

ADC는 Vertual Address 가 정의 되어 있지 않네요(못찾는것 같기도 하고...)

 

#define S3C64XX_PA_GPIO  (0x7F008000)
#define S3C64XX_VA_GPIO  S3C_ADDR(0x00500000)
#define S3C64XX_SZ_GPIO  SZ_4K

 

어뗗게 정의된 Address를 이용 하여 설정 해야 하는 건지.. 궁급 합니다.