기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하십니까.
Device driver 개발에 한가지 애로사항이 있어 이렇게 질의 드립니다.
업체에서 공급받는 Touch panel의 interface가 UART로 되어 있으며, 저희 MCU(S5PV210)의 port3번과 연결되어 있습니다.
여기에 맞는 Touch Screen Driver 를 구현하기 위하여 S사에서 전달받은 SMDKV210 source를 바탕으로 작업하고 있습니다.
그런데 Source 분석중에 S사에서 제공받은 소스와 odroid-t 소스는 모두 i2c interface를 사용하고 있으며,
static struct platform_driver s3c_ts_driver = {
.probe = s3c_ts_probe,
.remove = s3c_ts_remove,
.suspend = s3c_ts_suspend,
.resume = s3c_ts_resume,
.driver = {
.owner = THIS_MODULE,
.name = "s3c-ts",
},
};
와 같은 형태의 구조체를 통하여 모듈을 등록하고 있으나
현재 저희가 개발하고자 하는 Driver는 UART통신을 사용하며 Linux kernel에 기 작성되어 있는 UART를 기반으로 작성된 Source들은 대부분
static struct serio_driver fujitsu_drv = {
.driver = {
.name = "fujitsu_ts",
},
.description = DRIVER_DESC,
.id_table = fujitsu_serio_ids,
.interrupt = fujitsu_interrupt,
.connect = fujitsu_connect,
.disconnect = fujitsu_disconnect,
};
와 같은 형태의 구조체를 사용하고 있습니다.
그렇다면 모듈 등록 및 초기화 시 통신 인터페이스 방식차이 때문에 위와 같이 모듈 등록 구조체가 다른것인가요?
아니면 단순히 구현 알고리즘의 차이? 정도 인가요?
또한 UART interface를 통하여 Touch screen driver를 개발할 경우 Touch panel이 MCU의 몇번 포트에 연결되어 있는지
등록해주는 부분이 있을 것으로 판단 되는데 그 부분은 어디에서 이루어 지고 있나요?
혹.. 제 질문이 난해하다고 판단되시면, UART 통신 interface를 사용하여 Touch screen driver를 구현할려고 하는데 MCU의 UART 포트 초기화 및 등록하는데 조언을 구하는 정도로 판단하시면 될 것 같습니다.
Device driver 개발이 처음이라 상당히 난애합니다. 바쁘시더라도 조그마한 조언이라도 부탁드립니다.
답변에 미리 감사드리며 오늘 하루도 행복한 하루 되시길 기원합니다.
이상입니다.