기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요 질문이 있습니다.
현재 tvp7002.c 소스는 이렇게 구현이 되어 있습니다.
참조 : http://lxr.free-electrons.com/source/drivers/media/i2c/tvp7002.c
여기에서
tvp7002_write() 혹은 tvp7002_read() 펑션이 있는데 항상 불러오는 인자값이
struct v4l2_subdev *sd 로 되어 있습니다.
그런 다음 실제 i2c 컨트롤 할때 마다
struct i2c_client *c;
c = v4l2_get_subdevdata(sd);
i2c_write(c, addr, value); 혹은 i2c_read(c, addr, value);
이런식으로 되어 있는데 v4l2 를 사용하지 않고 진행하고 싶습니다.
질문이 너무 어려울수도 있지만
궁극적으로 하고 싶은건 v4l2_subdev 를 사용하지 않고 i2c 로 tvp7002 레지스터를
read 와 write 를 하고 싶습니다.
조언이나 팁 주면 감사하겠습니다.
i2c device driver를 직접 작성하시면 됩니다.
1. kernel menuconfig에서 7002 드라이버를 제거하시고
2. i2c를 in/out하는 코드는 원본을 참고하시고, 즉, register 제어하는 부분은
3. i2c driver를 직접 작성하시면 됩니다.