最近在學(xué)習(xí)
MIPI接口的LCD
驅(qū)動開發(fā)與
調(diào)試,這里我主要用的是MIPI-DSI接口,它學(xué)習(xí)起來真的是太復(fù)雜了,特別是對于我這種很久都沒寫驅(qū)動來說更是頭疼,但是頭疼歸頭疼,工作咱們還是要完成的,那就只能硬著頭皮往下肝吧!首先了解下什么是
MIPI-DSI:
MIPI-DSI是一種應(yīng)用于顯示技術(shù)的串行接口,兼容DPI(顯示像素接口,
Display Pixel Interface)、DBI(顯示總線接口,
Display Bus Interface)和DCS(顯示命令集,
Display Command Set),以串行的方式發(fā)送像素信息或指令給外設(shè),而且從外設(shè)中讀取狀態(tài)信息或像素信息,而且在傳輸?shù)倪^程中享有自己獨立的通信協(xié)議,包括數(shù)據(jù)包格式和糾錯檢錯機制。下圖所示的是MIPI-DSI接口的簡單示意圖。
MIPI-DSI具備高速模式和低速模式兩種工作模式,全部數(shù)據(jù)通道都可以用于單向的高速傳輸,但只有第一個數(shù)據(jù)通道才可用于低速雙向傳輸,從屬端的狀態(tài)信息、像素等格式通過該數(shù)據(jù)通道返回。時鐘通道專用于在高速傳輸數(shù)據(jù)的過程中傳輸同步時鐘信號。此外,一個主機端可允許同時與多個從屬端進行通信。(摘抄自網(wǎng)友)那么,在Linux中
調(diào)試MIPI LCD需要注意哪些細節(jié)呢?分別是:
- 供電
- 復(fù)位
- 時序
- 像素時鐘
- MIPI時鐘(本章不涉及)
- MIPI命令(本章不涉及)
- MIPI數(shù)據(jù)格式(本章不涉及)
在Linux驅(qū)動開發(fā)過程中,一般通用的MIPI的驅(qū)動都是現(xiàn)成的,比如以下的simple-panel-dsi,就是通用的MIPI接口LCD驅(qū)動,它在Linux內(nèi)核中位于driver/gpu/drm/panel目錄下,對應(yīng)的文件是:panel-simple.c。一般使用通用的
MIPI LCD驅(qū)動,我們只需要根據(jù)自己選購的屏的參數(shù)進行配置即可,也就是只需要配置設(shè)備樹即可順利完成點屏的操作,那么如何來配置相關(guān)參數(shù)呢?這里我用的是瑞芯微的RV1109方案,在此借用榮品LCD的設(shè)備樹我們來學(xué)習(xí)下它的設(shè)備樹參數(shù):