const char *name; /* optional */
u32 refresh; /* optional */
u32 xres;
u32 yres;
u32 pixclock;
u32 left_margin;
u32 right_margin;
u32 upper_margin;
u32 lower_margin;
u32 hsync_len;
u32 vsync_len;
u32 sync;
u32 vmode;
u32 flag;
};
struct fb_videomode mode;
signed short width; /* width in mm */
signed short height; /* height in mm */
u32 tim2;
u32 tim3;
u32 cntl;
unsigned int bpp:8,
fixedtimings:1,
grayscale:1;
unsigned int connector;
};
名稱 | 在數據手冊中的簡稱 | 中文名 | 意義 | 備註 |
name | No | 名字 | 液晶屏名字(可選) | No |
refresh | No | 刷新頻率 | 刷新頻率(內核中很多例子都賦值爲60) | No |
xres | No | 行寬 | 每行的像素個數 | No |
yres | No | 屏幕高度 | 屏幕的行數 | No |
pixclock | No | 像素時鐘 | 每個像素時鐘週期的長度,單位是皮秒(10的負12次方分之1秒) | No |
left_margin | HBP (Horizontal Back Porch) | 水平後沿 | 在每行或每列的象素數據開始輸出時要插入的象 素時鐘週期數 |
No |
right_margin | HFP (Horizontal Front Porch ) | 水平前沿 | 在每行或每列的象素結束到LCD 行時鐘輸出脈衝 之間的象素時鐘數 |
No |
upper_margin | VBP (Vertical Back Porch) | 垂直後沿 | 在垂直同步週期之後幀開頭時的無效行數 | No |
lower_margin | VFP (Vertical Front Porch) | 垂直前沿 | 本幀數據輸出結束到下一幀垂直同步週期開始之 前的無效行數 |
No |
hsync_len | HPW (HSYNC plus width) | 行同步脈寬 | 單位:像素時鐘週期 | 也有手冊簡稱爲HWH(HSYNC width) |
vsync_len | VPW (VSYNC width) | 垂直同步脈寬 | 單位:顯示一行的時間th | 也有手冊簡稱爲VWH(VSYNC width) |
sync | No | 同步極性設置 | 可以根據需要設置FB_SYNC_HOR_HIGH_ACT(水平同步高電平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高電平有效) | No |
vmode | No | No | 在內核中的大多數示例都直接置爲FB_VMODE_NONINTERLACED。interlaced的意思是交錯[隔行]掃描,電視中使用2:1的交錯率, 即每幀分兩場,垂直掃描兩次,一場掃描奇數行,另一場掃描偶數行。很顯然LCD目前不是這種模式。 | No |
flag | No | No | 目前沒有看到用法 | No |
#define TIM2_IVS (1 << 11) 反轉垂直同步 信號的極性。0:高電平有效,低電平無效。1:相反
#define TIM2_IHS (1 << 12) 反轉水平同步 信號的極性。0:高電平有效,低電平無效。1:相反
#define TIM2_IPC (1 << 13) 來選擇象素數據是在顯示屏時鐘的上升沿還是下降沿被驅動到LCD 數據線。0:上升沿。1:下降沿。
#define TIM2_IOE (1 << 14) 這個位選擇輸出使能信號的有效極性。0:高電平有效,低電平無效。1:相反
#define TIM2_BCD (1 << 26) 將該位設爲 1,令 PCD 的分頻無效。主要用於 TFT 顯示屏。這個位通常不設置,使用默認值0.
#define CNTL_LCDBPP1 (0 << 1) bit[1-3]定義色深。bpp:bits per pixel,每個像素的比特數。000 = 1 bpp.
#define CNTL_LCDBPP4 (2 << 1) 010 = 4 bpp.
#define CNTL_LCDBPP8 (3 << 1) 011 = 8 bpp.
#define CNTL_LCDBPP16 (4 << 1) 100 = 16 bpp
#define CNTL_LCDBPP16_565 (6 << 1) 110 = 16 bpp, 5:6:5 mode
#define CNTL_LCDBPP24 (5 << 1) 101 = 24 bpp (TFT panel only).
#define CNTL_LCDBW (1 << 4) STN LCD 單色/彩色選擇 。1:彩色,0:單色
#define CNTL_LCDTFT (1 << 5) LCD 顯示屏 TFT 類型選擇。0: STN 顯示屏,使用灰度定標器。1: TFT 顯示屏,不使用灰度定標器
#define CNTL_LCDMONO8 (1 << 6) 這個位決定單色 STN LCD 是使用 4 位並行接口還是 8 位並行接口。0:4位接口。
#define CNTL_LCDDUAL (1 << 7) STN 單 LCD 顯示屏或雙 LCD 顯示屏選擇 。0=單屏
#define CNTL_BGR (1 << 8) 色彩模式選擇,0=RGB:正常輸出,1=BGR:紅色和藍色交換位置
#define CNTL_BEBO (1 << 9) 控制內存中字節的存儲順序: 0=小端字節順序,1=大端字節順序
#define CNTL_BEPO (1 << 10) 設定象素排序的方式,0=採用小端象素排序,1=採用大端象素排序
#define CNTL_LCDPWR (1 << 11) LCD 電源使能。1=LCD 顯示屏通電且 LCDV[23:0]信號使能
#define CNTL_LCDVCOMP(x) ((x) << 12) LCD 縱向比較中斷.00=垂直同步脈衝有效,01=垂直後沿開始,10=有效視頻圖像開始,11=垂直前沿開始
#define CNTL_LDMAFIFOTIME (1 << 15) DMA FIFO請求延時
#define CNTL_WATERMARK (1 << 16) LCD DMA FIFO 水位線.0:當 DMA FIFO 包含 4 個或 4 個以上空單元時產生一個 LCD DMA 請求 .1:8個。
.mode = {
.name = "QVGA TM035KDH03",
.xres = 240,
.yres = 320,
.pixclock = 35714,
.left_margin = 69,
.right_margin = 18,
.upper_margin = 12,
.lower_margin = 10,
.hsync_len = 1,
.vsync_len = 1,
.sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
},
.width = -1,
.height = -1,
.tim2 = 0,
.cntl = ( CNTL_LCDTFT | CNTL_LCDVCOMP(1) | CNTL_LCDBPP16_565),
.bpp = 16,
};
轉載自:http://blog.chinaunix.net/uid-9688646-id-3251696.html