LCD的配置
来源:互联网 发布:python 量化投资书籍 编辑:程序博客网 时间:2024/06/11 15:38
lcd的驱动也不需要自己写,而是在设备树中配置好即可。
设备树
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 = <16>; fdd = <255>; sync-edge = <0>; sync-ctrl = <1>; raster-order = <0>; fifo-th = <6>; }; display-timings { 800x480p62 { clock-frequency = <30000000>; hactive = <640>; vactive = <480>; hfront-porch = <16>; hback-porch = <144>; hsync-len = <10>; vback-porch = <13>; vfront-porch = <32>; vsync-len = <2>; hsync-active = <1>; vsync-active = <1>; }; }; }; lcd_pins_s0: lcd_pins_s0 { pinctrl-single,pins = < 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */ 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */ 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */ 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */ 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */ 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */ 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */ 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */ 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */ 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */ 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */ 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */ 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */ 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */ 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */ 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */ 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */ 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */ 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */ 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */ 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */ 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */ 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */ 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */ 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */ 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */ 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */ 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */ >; };
配置参数
配置lcd对应的管脚,方法前面已说过。
配置lcd的参数,这个需要根据自己的lcd设备spec来设置。
display-timings
在Documentation/devicetree/bindings/video/display-timing.txt有详细描述。
display-timings node--------------------required properties: - noneoptional properties: - native-mode: The native mode for the display, in case multiple modes are provided. When omitted, assume the first node is the native.timing subnode--------------required properties: - hactive, vactive: display resolution - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters in pixels vfront-porch, vback-porch, vsync-len: vertical display timing parameters in lines - clock-frequency: display clock in Hzoptional properties: - hsync-active: hsync pulse is active low/high/ignored - vsync-active: vsync pulse is active low/high/ignored - de-active: data-enable pulse is active low/high/ignored - pixelclk-active: with - active high = drive pixel data on rising edge/ sample data on falling edge - active low = drive pixel data on falling edge/ sample data on rising edge - ignored = ignored - interlaced (bool): boolean to enable interlaced mode - doublescan (bool): boolean to enable doublescan mode - doubleclk (bool): boolean to enable doubleclock modeAll the optional properties that are not bool follow the following logic: <1>: high active <0>: low active omitted: not used on hardwareThere are different ways of describing the capabilities of a display. Thedevicetree representation corresponds to the one commonly found in datasheetsfor displays. If a display supports multiple signal timings, the native-modecan be specified.The parameters are defined as: +----------+-------------------------------------+----------+-------+ | | ↑ | | | | | |vback_porch | | | | | ↓ | | | +----------#######################################----------+-------+ | # ↑ # | | | # | # | | | hback # | # hfront | hsync | | porch # | hactive # porch | len | |<-------->#<-------+--------------------------->#<-------->|<----->| | # | # | | | # |vactive # | | | # | # | | | # ↓ # | | +----------#######################################----------+-------+ | | ↑ | | | | | |vfront_porch | | | | | ↓ | | | +----------+-------------------------------------+----------+-------+ | | ↑ | | | | | |vsync_len | | | | | ↓ | | | +----------+-------------------------------------+----------+-------+Example: display-timings { native-mode = <&timing0>; timing0: 1080p24 { /* 1920x1080p24 */ clock-frequency = <52000000>; hactive = <1920>; vactive = <1080>; hfront-porch = <25>; hback-porch = <25>; hsync-len = <25>; vback-porch = <2>; vfront-porch = <2>; vsync-len = <2>; hsync-active = <1>; }; };Every required property also supports the use of ranges, so the commonly useddatasheet description with minimum, typical and maximum values can be used.Example: timing1: timing { /* 1920x1080p24 */ clock-frequency = <148500000>; hactive = <1920>; vactive = <1080>; hsync-len = <0 44 60>; hfront-porch = <80 88 95>; hback-porch = <100 148 160>; vfront-porch = <0 4 6>; vback-porch = <0 36 50>; vsync-len = <0 5 6>; };
panel-info
在Documentation/devicetree/bindings/drm/tilcdc/panel.txt有详细描述。
Device-Tree bindings for tilcdc DRM generic panel output driverRequired properties: - compatible: value should be "ti,tilcdc,panel". - panel-info: configuration info to configure LCDC correctly for the panel - ac-bias: AC Bias Pin Frequency - ac-bias-intrpt: AC Bias Pin Transitions per Interrupt - dma-burst-sz: DMA burst size - bpp: Bits per pixel - fdd: FIFO DMA Request Delay - sync-edge: Horizontal and Vertical Sync Edge: 0=rising 1=falling - sync-ctrl: Horizontal and Vertical Sync: Control: 0=ignore - raster-order: Raster Data Order Select: 1=Most-to-least 0=Least-to-most - fifo-th: DMA FIFO threshold - display-timings: typical videomode of lcd panel. Multiple video modes can be listed if the panel supports multiple timings, but the 'native-mode' should be the preferred/default resolution. Refer to Documentation/devicetree/bindings/video/display-timing.txt for display timing binding details.Recommended properties: - pinctrl-names, pinctrl-0: the pincontrol settings to configure muxing properly for pins that connect to TFP410 deviceExample: /* Settings for CDTech_S035Q01 / LCD3 cape: */ lcd3 { compatible = "ti,tilcdc,panel"; pinctrl-names = "default"; pinctrl-0 = <&bone_lcd3_cape_lcd_pins>; panel-info { ac-bias = <255>; ac-bias-intrpt = <0>; dma-burst-sz = <16>; bpp = <16>; fdd = <0x80>; sync-edge = <0>; sync-ctrl = <1>; raster-order = <0>; fifo-th = <0>; }; display-timings { native-mode = <&timing0>; timing0: 320x240 { hactive = <320>; vactive = <240>; hback-porch = <21>; hfront-porch = <58>; hsync-len = <47>; vback-porch = <11>; vfront-porch = <23>; vsync-len = <2>; clock-frequency = <8000000>; hsync-active = <0>; vsync-active = <0>; }; }; };
另外,需要确保tilcdc驱动使能。
阅读全文
0 0
- LCD的配置
- S3C2440之LCD的初始化配置
- LCD各参数配置
- MTK6515 配置lcd背光
- OK6410 LCD配置
- 6410LCD显示配置
- LCD 内核配置
- STM32 FSMC学习笔记+补充(LCD的FSMC配置)
- 6410中LCD配置的宏定义所在位置
- AM335x关于LCD屏幕的配置--TI--Sitara AM335x系列
- AM335x关于LCD屏幕的时钟PLL配置
- STM32 FSMC学习笔记+补充(LCD的FSMC配置)
- 不同的LCD之间程序移植时配置参考
- STM32F10X系列LCD屏的配置及子函数
- PDK AM335x LCD驱动的移植,DTS配置
- 2440LCD控制器详细配置
- 关于lcd配置寄存器顺序。
- LCD驱动移植配置总结
- 在Eclipse中测试MySQL-JDBC(12)自定义连接池
- MySql
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E. Half-consecutive Numbers
- linux 文件删除原理
- UVa 11809 (math)
- LCD的配置
- 现代OpenGL+Qt学习笔记之二:程序框架
- 静态代码块、构造代码块与构造函数的调用顺序
- 判断素数
- JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链
- Sum of numbers from 0 to N -- 7 kyu
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛E Half-consecutive Numbers
- java提高篇(九)-----详解匿名内部类
- !互联网进入付费时代,准备好了吗?