기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
PMIC 의 Device Driver를 만들려고 합니다.
그런데 인터페이스가 I2C로 되어 있네요. 여기서 한가지 문제가 생겼는데...
Device Driver는 모듈형식으로 제작을 할려고 하는데, I2C 관련 API를 써야 하므로
단순하게 #include <i2c.h> 로 include 하고 사용을 하면 되나요?
핸드폰 프로그램의 경우 단순이 그렇게 사용을 하긴 합니다만...
책에도 안나와 있고, 리눅스 문서 보니까 i2c_driver 구조체를 사용하여 xxx_i2c_init, xxx_i2c_exit 를 선언하고
i2c API를 사용하는 것으로 나오던데, 여기에 xxx_attach_adapter, xxx_attach_detach를 써서 또 뭔가를
하더라구요...
대충 이것저것 참조해서 하면 될거 같기는 한데 정말 이렇게 하면 되는건지 좀 막막하네요...
혹시 참조할 만한 소스나 인터넷 문서, 아시는데 있나요?
아시는 분 답변 좀 부탁드립니다.
보통 드라이버 만드는거랑 비슷하게하면 됩니다.
구조체 만들어서 (i2c_driver) 채운다음
init에서 i2c_add_driver() 등록하고..
probe에서 client로 할당 하고..(i2c_set_clientdata())
i2c_master_send()으로 디바이스에 날릴 버퍼를 보내주면 날아갑니다..
드라이버 인터페이스를 fileoperaion으로 쓸경우
open,read,write,close등 만들어서 등록해주고요..
/dev/에 mknod 해서 사용하면 됩니다..
커널/driver에서 i2c_master_send로 검색해서 참고할만 소스를 찾아보세요..
Linux에서는 I2C 드라이버가 따로 있습니다.
보통 I2C를 이용하는 디바이스 드라이버의 경우 I2C 드라이버의 Client 형식으로 들어갑니다.
Camera의 경우 대부분 I2C 인터페이스를 사용하기 때문에 Camera driver 쪽을 참고하시면 될 듯 합니다.