기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요!
리눅스 디바이스 드라이버 제작에 관하여 문의드릴려고 합니다.
제가 리눅스 디바이스 드라이버 개발방법이 틀려진것을
최근에 알았습니다.
예전에는 platform device + device driver
최근에는 device tree + device driver
이렇게 변경된다고 이해하고 있습니다.
이렇게 이해하는것이 맞는지도 궁금합니다.
이렇게 변할때 예전꺼나 최근거 혼용해서 사용해도 되는지 궁금합니다.
I2C는 platform device방법으로
spi는 device tree방법으로 혼용이 가능한가요?
아시는 분 도움을 부탁드립니다.
디바이스 드라이버를 무슨 목적으로 하느냐에 따라 다르지 않을까 싶네요.
만들고자 하는 디바이스 드라이버가 하위 호환성을 가지고 좀 오픈되어 남이 써도 상관 없다
-> Device Tree 방식과 Board 서술 방식 두개를 지원하도록 작성해야 할 것이고
우리 프로젝트에만 사용할 거다
-> 현재 프로젝트에서 사용하는 방식으로 작성해 놓으면 될 듯합니다.
결론적으로 알고 보면 드라이버 입장에서 동작은 동일 하게 작성 되어 지고
probe 할 때, 초기 HW 관련 값이 어디에 저장 되어 있는가에 대한 방식이므로
probe 할 때 약간만 신경써주면 될 듯 합니다.
대부분의 모든 BSP 가 Device Tree 형식으로 가는 형태이므로
현재 프로젝트에서 Board 서술 방식을 사용안할 거라면 굳이 지원하게 할 필요 없겠죠
(현재 진행 프로젝트가 device tree 방식으로 변경 되어서 이런 고민하시는거 아닌가 싶네요 ㅎㅎ)
http://slowbootkernelhacks.blogspot.kr/2014/03/beaglebone-linux-kernel310x-programming.html
여기 포스트 추천 드립니다.
대략은 맞습니다.
좀 바뀐 부분도 있지만요.....
혼용이 가능합니다.
다만, 커널 버전에 따라 조금씩 다릅니다.
예전에 혼용했던 적이 있기는 합니다.