日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

RK3399 Mipi LCD Driver 代碼分析 · Rockchip

 老匹夫 2019-09-26

RK3399 Mipi LCD Driver 代碼分析

KernelVersion: 4.4.70

+

Documentation/devicetree/bindings/video/rockchip_fb.txt

+

概覽

總的來說,RK LCD 的 driver 有如下四個(gè)部分:

+
  1. FB 框架相關(guān)的部分
  2. LCDC 控制器相關(guān)的部分
  3. LCD 屏幕配置相關(guān)的部分
  4. Mipi 驅(qū)動(dòng)代碼
?  rockchip git:(master) ? tree ./driver/video/
.
├── backlight    背光相關(guān)
├── fbdev        FB 框架
│   └── core     FB 核心代碼
│       ├── fbmem.c
│       └── fbsysfs.c
└── rockchip
    ├── rk_fb.c  平臺(tái) FB 驅(qū)動(dòng)
    ├── rkfb_sysfs.c
    ├── lcdc
    │   ├── rk322x_lcdc.c
    │   └── rk322x_lcdc.h
    ├── screen
    │   ├── lcd_general.c
    │   ├── lcd_mipi.c
    │   └── rk_screen.c  屏幕配置文件共用代碼
    └── transmitter   Mipi 驅(qū)動(dòng)代碼
        ├── rk32_mipi_dsi.c
        ├── rk32_mipi_dsi.h
        ├── mipi_dsi.c
        └── mipi_dsi.h

RK FBDEV 框架相關(guān)代碼

drivers/video/fbdev/core/fbmem.c
drivers/video/rockchip/rk_fb.c
drivers/video/rockchip/rkfb_sysfs.c
include/linux/rk_fb.h

fbmem.c 是 upstream 的代碼。它的作用在于:向上提供了和用戶空間交接的接口(open/read/write/ioctl); 向下聯(lián)系平臺(tái)相關(guān)的 fb 驅(qū)動(dòng) rk_fb.c。

+

rk_fb.c 是 RK 平臺(tái)的 FB 驅(qū)動(dòng)。

+

rkfb_sysfs.c

+

當(dāng)打開宏 CONFIG_FB_ROCKCHIP

+
obj-$(CONFIG_FB_ROCKCHIP) += rk_fb.o rkfb_sysfs.o bmp_helper.o screen/
obj-$(CONFIG_FB_ROCKCHIP) += display-sys.o lcdc/

會(huì)使能 rk framebuffer driver kernel/driver/video/rockchip/rk_fb.c

+

會(huì)使能 rk lcdc driver kernel/driver/video/rockchip/lcdc/

+

會(huì)使能 rk screen 解析屏幕配置相關(guān)代碼 kernel/driver/video/rockchip/screen/

+

framebuffer driver

代碼路徑 kernel/driver/video/rockchip/rk_fb.c

+
fb: fb{
   compatible = "rockchip,rk-fb";
   rockchip,disp-mode = <DUAL>;
};

LCDC 框架代碼

這部分和具體的 LCDC 控制器相關(guān),對(duì)于 RK3399 平臺(tái)。 打開宏 CONFIG_LCDC_RK322X

+
obj-$(CONFIG_LCDC_RK322X) += rk322x_lcdc.o

RK Screen driver

依賴打開宏 CONFIG_FB_ROCKCHIP ,才會(huì)編譯 video/rockchip/screen 中的內(nèi)容。 rk_screen.c 默認(rèn)LCD_GENERALCONFIG_LCD_MIPI 二選一。 當(dāng)不需要屏的時(shí)候選 LCD_GENERAL。 當(dāng)需要屏的時(shí)候選CONFIG_LCD_MIPI。

+

對(duì)屏參文件的解析

屏相關(guān)的 dts 文件一般在 kernel/arch/arm64/boot/dts/ 中。 分為四個(gè)部分,mipi host 配置、屏電源控制配置、屏初始化序列配置和屏參配置。 drivers/video/rockchip/screen/lcd_mipi.c 中負(fù)責(zé)解析 mipi host 配置、屏電源控制配置、屏初始化序列配置的解析。 drivers/video/of_display_timing.c 中負(fù)責(zé)解析 屏參。

+

Mipi Host 配置

我們直接看 dts 文件

+
```

#### 屏電源控制


#### 屏初始化序列

#### 屏參配置


## Transmitter driver
打開宏 `CONFIG_RK_TRSM`

obj-$(CONFIG_RK_TRSM) += transmitter/ `` 使能 rk transmitter driverkernel/drivers/video/rockchip/transmitter`

+

rk mipi dsi driver

打開宏 CONFIG_RK32_MIPI_DSI對(duì)應(yīng)驅(qū)動(dòng) rk32_mipi_dsi.c,Mipi driver 主文件。寄存器以及結(jié)構(gòu)體的定義在 rk32_mipi_dsi.h。

+

打開宏 CONFIG_MIPI_DSI 對(duì)應(yīng)驅(qū)動(dòng) mipi_dsi.c,封裝的函數(shù)指針接口函數(shù), 供 lcd_mipi.c 調(diào)用, 函數(shù)的具體實(shí)現(xiàn)在 rk32_mipi_dsi.c 中。Mipi 協(xié)議相關(guān)的宏定義以及函數(shù)指針結(jié)構(gòu)體定義在 mipi_dsi.h。

+

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多