AM335x(TQ335x)學(xué)習(xí)筆記——LCD驅(qū)動(dòng)移植
(1)初步分析
本文引用地址:http://m.butianyuan.cn/article/201611/322821.htm由于TQ335x使用的芯片是AM335x,故仍然可以參考am335x-evm.dts。當(dāng)然,am335x-evmsk.dts、am335x-beagbone.dts都可以。本文以am335x-evm.dts為例。大體上瀏覽下DTS文件,可以發(fā)現(xiàn)兩個(gè)醒目的節(jié)點(diǎn):一個(gè)是panel,一個(gè)是backlight。接下來我們逐個(gè)分析。
(2)panel節(jié)點(diǎn)信息分析及配置
從panel節(jié)點(diǎn)可以獲得如下信息:
- 1.匹配內(nèi)核驅(qū)動(dòng)的關(guān)鍵詞是:"ti,tilcdc,panel",可以通過這個(gè)關(guān)鍵字找到相應(yīng)的驅(qū)動(dòng)。
- 2.管腳配置在節(jié)點(diǎn)lcd_pins_s0內(nèi)
- 3.panel-info中可以配置LCD的硬件信息,如LCD的分辨率等
- 4.display-times中記錄了LCD刷屏的相關(guān)時(shí)序。
首先是設(shè)置panel-info和display-times。我的TQ335x是用的我調(diào)試TQ210時(shí)使用的觸摸屏,型號(hào)是TN92,這個(gè)屏是800*480的分辨率,因此,panel-info與evm開發(fā)板的配置是相同的,可以不做任何修改。但是,不同屏幕的display-times一般是不相同的,因此,需要查閱觸摸屏的手冊(cè)來確認(rèn)display-times。
TN92的水平掃描時(shí)序如下表:
垂直掃描時(shí)序如下圖:
但是,如果對(duì)LCD各參數(shù)不怎么熟悉的話,很難建立這兩個(gè)表與DTS中display-times的關(guān)系,這時(shí)應(yīng)該去查閱一下linux內(nèi)核的文檔和芯片手冊(cè)。在內(nèi)核文檔:”Documentation/devicetree/bindings/video/display-timing.txt"有相關(guān)的記載,該文件中有形象的描述,具體如下:
- +----------+-------------------------------------+----------+-------+
- ||↑|||
- |||vback_porch|||
- ||↓|||
- +----------#######################################----------+-------+
- |#↑#||
- |#|#||
- |hback#|#hfront|hsync|
- |porch#|hactive#porch|len|
- |<-------->#<-------+--------------------------->#<-------->|<----->|
- |#|#||
- |#|vactive#||
- |#|#||
- |#↓#||
- +----------#######################################----------+-------+
- ||↑|||
- |||vfront_porch|||
- ||↓|||
- +----------+-------------------------------------+----------+-------+
- ||↑|||
- |||vsync_len|||
- ||↓|||
- +----------+-------------------------------------+----------+-------+
綜合這三份資料,很容易確定下LCD的屏的時(shí)序參數(shù)的范圍(需要強(qiáng)調(diào)的是,上述參數(shù)不一定精確,還需要使用圖片實(shí)機(jī)測(cè)下效果),經(jīng)過多次實(shí)驗(yàn),最終確定下了LCD的時(shí)序參數(shù),詳情如下:
- panel{
- compatible="ti,tilcdc,panel";
- status="okay";
- pinctrl-names="default";
- pinctrl-0=<&lcd_pins_s0>;
- panel-info{
- ac-bias=<255>;
- ac-bias-intrpt=<0>;
- dma-burst-sz=<16>;
- bpp=<32>;
- fdd=<0x80>;
- sync-edge=<0>;
- sync-ctrl=<1>;
- raster-order=<0>;
- fifo-th=<0>;
- };
- display-timings{
- 800x480p62{
- clock-frequency=<30000000>;
- hactive=<800>;
- vactive=<480>;
- hfront-porch=<214>;
- hback-porch=<40>;
- hsync-len=<4>;
- vback-porch=<20>;
- vfront-porch=<23>;
- vsync-len=<4>;
- hsync-active=<0>;
- vsync-active=<0>;
- };
- };
- };
評(píng)論