기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

kernel source중 gpio와 관련된 질문입니다.

smdk2400_iodesc 구조체에 외부 장치의 physical addr를 virtual addr로 변환해 주는 부분이 있는데요

gpio는 없더라구요

제 생각에는 physical gpio addr(S3C24XX_PA_GPIO)을 virtual gpio addr(S3C24XX_VA_GPIO)로

변환해주는 코드도 있어야 한다고 생각하는데

소스코드에서는 이런 메핑 없이 그냥 S3C24XX_VA_GPIO로 접근하는것 같더라구요

아래는 소스코드 입니다.

 

 __raw_writel((__raw_readl(S3C2410_GPFCON) & ~(3<<4) | (2<<4), S3C2410_GPFCON); 

 

이런식으로 사용하는데 여기서 gpio의 physical addr 메핑도 없이 그냥 virtual addr을 사용하더군요

(S3C2140_GPFCON은 S3C24XX_VA_GPIO + GPFCON 이런식으로 define 되어 있습니다.)

어떻게 사용가능한 걸까요??

도와주세요...


소노공

2010.12.10 00:11:19
*.125.253.101

아...글쓰고 찾아보니 추가로 이런 코드가 있더군요

 

#define S3C24XX_VA_GPIO    ((S3C24XX_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)

 

현제 virtual gpio addr을 physical gpio addr에 physical uart addr를 뺀후 다시 virtual uart addr을 더해주는데요

이렇게 한다고 해서 메핑되진 않을꺼 같은데...

답변 부탁드립니다.^_^

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

사용자 로그인