기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
OMAP3530 / Linux-2.6.22에서 MMC/SD Card를 사용해야 합니다.
저희 Target Board는 OMAP3EVM과 유사하나 MMC IRQ를 EVM에서 i2c를 사용한 반면에
Target Board는 GPIO를 사용을 합니다.
굳이 OMAP Processor에 상관 없이 MMC/SD Device에 대한 Driver에 관한 문의입니다.
일단, Driver의 수정 없이 Linux Kernel을 부팅을 하면 Driver가 정상적으로 올라 오는 것을 확인 됩니다.
[booting messages]
......
mmc0: host does not support reading read-only switch. assuming write-enable.
mmcblk0: mmc0:f327 SU04G 3872256KiB
mmcblk0: p1
.......
하지만, MMC/SD Card를 제거하여 다시 삽입하면 Device의 인식이 되지 않고 있습니다.
Event가 발생되지 않는 다는 것은 GPIO IRQ로 Interrupt를 받지 못하는 다는 것이겠지요?
저희가 사용하는 Micro SD의 DAT0 ~DAT3에서 DAT3이 Card Detect 일 것인데,
DAT3의 GPIO를 설정을 하고 request_irq(host->card_detect_irq, ....)에 등록을 해주면 되는 것이 아닐까요?
다른 CPU를 사용하는 target에서 MMC/SD Driver들 또한 마찬가지겠죠?
OMAP source를 보지 않아서 어떻게 되어 있는지는 모르겠지만, insert를 detection 한다음
"void mmc_detect_change(struct mmc_host *host, unsigned long delay)" 함수를 통해서 event를
줄것이기 때문에 위 함수로 검색한번 해보시면 찾으실 수 있을것 같네요.