도와주세요!!
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를 이용 하여 설정 해야 하는 건지.. 궁급 합니다.



아마도 arch 쪽에 해당 영역에 대한 테이블 설정이 있을 것이고
보통 드라이버에서 platform 형식을 가져다가 영역을 활성화 시킵니다.
커널 드라이버중에서 platform 형식의 드라이버 로드하는 것을 찹조하셔서
작성하신 드라이버에 request_region 함수로 영역에 대한 활성화를 하신후 access 하셔야 합니다.