기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요 


Omap4460 에 제가 구입한 디스플레이를 연결 하려고


디스플레이 드라이버를 작성했습니다. 그런데 제가 디스플레이 드라이버 작성은 처음이라


커널 소스안의 디스플레이 드라이버 작성된 것들을 참조해서 나름 작성했는데요. 


혹시 제가 놓치고 있는 부분이 있는지 여쭤보고싶어서 글을 쓰게 되었습니다.


Omap 보드라서 Omap에 있는 Display subsystem을 이용하였고 보드에는 안드로이드가 올라갈 예정입니다.


안드로이드 디스플레이 드라이버 작성시 어디 부분 수정해야하고 체크해봐야 하는지에 대한 답변만 해주셔도 감사합니다. ㅠㅠ


디스플레이 데이터시트: https://www.dropbox.com/s/ixpws4qzo3ttj6e/SVGA050.pdf?dl=0


제가 디스플레이 드라이버를 추가하기 위해 작성한 부분은ㅠ


1) 리눅스 커널의 drivers/video/omap2/displays 에

display 코드를 작성하고 device 구조체를 다음과 같이 설정했습니다.


static struct omap_dss_device svga050_display_device = {

.name = "svga050",

.driver_name = "svga050",

.type = OMAP_DISPLAY_TYPE_DPI,

.phy.dpi.data_lines = 24,

.channel = OMAP_DSS_CHANNEL_LCD2,

.platform_enable = svga050_display_enable,

.platform_disable = svga050_display_disable,

.data = &svga050_display_pdata,

};


2) 그리고 arch/arm/mach-omap2/ 밑의 머신 코드에서


타이밍을 다음과 같이 세팅하고


static struct omap_video_timings svga050_timings = {

.x_res = 800,

.y_res = 600,


.pixel_clock = 40000,


.hsw = 128,

.hfp = 40,

.hbp = 88,


.vsw = 4,

.vfp = 1,

.vbp = 23,

}; 


디스플레이 컨트롤러의 레지스터 세팅을 i2c로 하기 때문에 i2c driver와 display device driver구조체를 한번에

머신 초기화 함수에서 등록했습니다. 그리고 display device driver probe 함수에서 i2c 디바이스를 i2c_new_device로

추가했습니다.

power on 시에 호출되는 함수에서는 omap dss에 있는 omapdss_dpi_display_enable(dssdev);로 display를 enable 시켰습니다.


현재 이렇게 작성했는데 안드로이드에서 디스플레이 드라이버를 추가 하려면 이렇게 커널 부분에 추가만 하면 되는지

아니면 다른 곳을 더 수정하거나 추가해야되는지 궁금합니다. 친절한 답변 부탁드립니다. ㅠㅠ





고도리

2015.08.05 08:16:58
*.200.239.210

칩마다 여러가지 방법이 있을겁니다.

삼성 칩 기준으로 간단하게 설명드리면...


1. display용 fb 세팅

주로 arch/arm/mach-omap2/....c 파일에 관련 부분이 있을겁니다.

아닐 경우


2. drivers/video/omap2/.......c 파일들이 있을겁니다.


저는 보통 위의 둘 중의 하나의 파일에서의 설정을 복사...해서 씁니다.


3. resolution, pixel clock, 관련 parameter를 세팅을 합니다.


4. display관련 block의 power와 clock을 적절하게 켜 줍니다.


이런 순서대로 대체적으로 진행을 하는데, 참고하시면 될겁니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6228 [NFS] 뭔 문제인지 잘 모르겠습니다. [완료!] [3] 이제현 2006-09-21 3245
6227 bootcmd 개수 늘리기 or fatload buffer size 변경? [4] 마빡 2014-06-20 3242
6226 [질문] LX800 보드 전원 Range [3] 김증일 2007-05-14 3233
6225 자료실에 있는 WINCE 5.0 workspace로 컴파일 하는데.. [8] 오주열 2008-04-17 3225
6224 [질문] 최대절전모드와 대기모드에 진입할 방법이 없나요? [3] 임장욱 2007-05-12 3224
6223 부팅시 disk image starting at 0. 나오고 부팅이 멈추는데요 [1] biokk 2013-11-04 3200
6222 완료) 부품 구매할 수 있는 곳 좀 알려주세요 [1] 김형기 2007-07-03 3198
6221 [완료]터치 반응이 없습니다(아래의 글과 조금차이가 있습니다). [4] 황철진 2007-05-13 3196
6220 [질문] USB 주변기기를 많이 사용하는거 같은데... [4] 류충렬 2007-05-10 3184
6219 OS별 부팅속도가 얼마나 되는지 알고 싶습니다.. [1] 정현 2008-01-28 3180
6218 2G SD카드 인식문제 [9] 문철민 2008-01-12 3176
6217 origen_quad 4412 mt6620 wifi 관련 link 문제 [6] 준쓰아빠 2013-06-17 3160
6216 android 2.1 부팅 후 suspend 되는 현상? (추가) file [4] 김상범 2010-02-21 3148
6215 nfs로 안드로이 부팅중 "System UIDs inconsistent" 에러 팝업 창... [3] 이성호 2009-04-01 3147
6214 [질문] Aesop-LX800 Wince 5.0 800x480 LCD출력? [1] 김정렬 2007-09-29 3143
6213 LX800 + CS5536 가격과 구입처 좀 가르쳐 주세요. [1] 김정렬 2007-09-07 3143
6212 [질문] CD롬을 제거하면 부팅이 안된다...?!!! 이런 경우 보신분 ... [6] 임장욱 2007-05-17 3141
6211 serial gadget 이 안되네요... [6] 이율삼 2006-06-28 3138
6210 SMDK6410에서 Android 포팅.. [4] 정경진 2009-04-16 3137
6209 질문) Wince에서 LCD 출력 [2] 김형기 2007-07-28 3134

사용자 로그인