![](/zbxe/layouts/mr_layouts_1st/images/default/blank.gif)
도와주세요!!
글 수 15,339
2008.07.25 01:53:50 (*.118.75.216)
6967
FA리눅스 연구원 님께서 하신 답변 중에..
nCS1가 0x0400_0000 이고, A22는 0x0040_0000 입니다..
따라서 CS_TOUCH는 0x0440_0000가 베이스 주소가 됩니다.
이 주소에 BA1~BA3의 주소를 더해서 레지스터를 접근하게 됩니다.
와 같은 내용을 접했습니다..
nCS1은 PXA255 스펙을 보고.. A22는 16진수로 계산을 하니까
저 주소가 나오던데...
BA1~BA3의 주소는 어떻게 알아내야 하나요?? ㅠ.ㅠ
답변 부탁 드릴께여...ㅠ.ㅠ
P.S : 제가 하려는 작업은..
MK712 컨트롤 레지스터에 값을 쓰려고 합니다..
도와 주세요..
nCS1가 0x0400_0000 이고, A22는 0x0040_0000 입니다..
따라서 CS_TOUCH는 0x0440_0000가 베이스 주소가 됩니다.
이 주소에 BA1~BA3의 주소를 더해서 레지스터를 접근하게 됩니다.
와 같은 내용을 접했습니다..
nCS1은 PXA255 스펙을 보고.. A22는 16진수로 계산을 하니까
저 주소가 나오던데...
BA1~BA3의 주소는 어떻게 알아내야 하나요?? ㅠ.ㅠ
답변 부탁 드릴께여...ㅠ.ㅠ
P.S : 제가 하려는 작업은..
MK712 컨트롤 레지스터에 값을 쓰려고 합니다..
도와 주세요..
연결된 어드레스가 A1~A3 이면 mk712 는 3개의 address 핀이 있다는 말이죠
그럼 총 2의 3승 즉 8개의 레지스터가 있는것을 알수 있습니다.
그 각각의 레지스터는 0x0, 0x2, 0x4, 0x6, 0x8 0xa, 0xc, 0xe 의 어프셋을 갖습니다.
CS_TOUCH 의 베이스 주소가 0x0440_0000 이니 위의 어프셋을 더하면 레지스터의 주소가 나오네요
주의 할 점은 위의 것은 하드웨어 주소이니 커널에서 접근할때는 가상주소로 접근하셔야 합니다.
unsinged char * mk712_reg_base = ioremap( 0x04400000, 0x10 );
writeb( data, mk712_reg_base + offset );