官术网_书友最值得收藏!

6.4 OMAP的主要設備驅動

6.4.1 顯示的驅動程序

OMAP處理器顯示方面的驅動程序,就是OMAP處理器SOC的DSS(Display Sub System,顯示子系統)的驅動程序。其顯示子系統包含一個主顯示層,兩個視頻疊加的顯示層。

顯示子系統的庫在drivers/video/omap2/omapfb/dss目錄中,主要包含了core.c, manager.c,display.c,overlay.c,dss.c,omapdss.c,dpi.c,dispc.c和venc.c等文件,這些內容構成了顯示驅動程序公用的“庫程序”。

其中core.c中定義了platform_driver的名稱為omapdss,在sys文件系統/sys/bus/platform/drivers/中包含了同名目錄。它和arch/arm/mach-omap中的board-zoom2.c中定義的platform_device相匹配。

主要的文件系統的信息包含在以下目錄中:

    # ls -l /sys/devices/platform/omapdss/

其中overlay0目錄中為基本顯示層(圖形層)的信息,overlay1和overlay2目錄中分別是兩個疊加顯示層的信息。manager0和manager1中則提供了管理方面的功能。

執行以下的內容,查看sys文件系統:

    / # cat /sys/devices/platform/omapdss/overlay0/name
    gfx

gfx為graphics的含義,表示overlay0的名稱為圖形層。除了name以外enabled,manager, screen_width,global_alpha,input_size,output_size,position等文件都可以提供相關的信息。

文件enabled是一個可以控制的內容,可以通過如下命令分別進行關閉顯示和打開顯示的功能。

    # echo "0" > /sys/devices/platform/omapdss/overlay0/enabled
    # echo "1" > /sys/devices/platform/omapdss/overlay0/enabled

顯示部分的frambuffer驅動程序部分主要頭文件為:include/linux/omapfb.h。其中定義額外的ioctl命令號,以及在驅動程序中使用的結構體等內容。

主顯示驅動的frambuffer驅動程序的內容是drivers/video/omap2/omapfb中的omapfb-main.c,omapfb-ioctl.c,omapfb-sysfs.c等文件。編譯將被連接在一起生成omapfb.o目標文件。這構成了標準的framebuffer驅動程序,在Android系統中其設備節點是/dev/graphics/fb0。

omapfb-main.c定義了platform_driver的名稱為omapfb,在sys文件系統/sys/bus/platform/drivers/中包含了同名目錄。這個名稱和platform_driver、arch/arm/plat-omap中的fb.c定義的platform_device相匹配。

主站蜘蛛池模板: 苗栗县| 武宁县| 迭部县| 抚宁县| 濉溪县| 密云县| 沾益县| 万载县| 高台县| 武隆县| 民勤县| 达州市| 巢湖市| 海晏县| 宣化县| 铜梁县| 永宁县| 咸宁市| 健康| 崇州市| 平凉市| 鄯善县| 历史| 乌拉特中旗| 赣榆县| 呼伦贝尔市| 漳州市| 绍兴县| 安阳县| 中阳县| 苏州市| 乌什县| 孟连| 丰台区| 健康| 靖边县| 赣州市| 西安市| 河曲县| 桂林市| 江都市|