Linux 2 6 38的LCD驅動分析(一)

2021-06-19 21:16:18 字數 1329 閱讀 1336

一、讓lcd顯示可愛的小企鵝

還是先說說環境吧,處理器為s3c6410,linux的版本是2.6.38(友善之臂提供的)。下面先說說怎樣讓lcd上顯示出可愛的小企鵝。最直接的步驟如下(記住不要問為什麼哈~_~,一步一步跟著走就行了):

1.       新增s3c6410處理器的lcd控制暫存器的初始值,具體做法為在檔案arch/arm/mach-s3c6410/mach-mini6410.c中新增struct s3c_fb_platdata型別的暫存器描述訊息,如下所示:

static struct s3c_fb_pd_win mini6410_fb_win0 = ,

.max_bpp = 32,

.default_bpp = 16,

};/* 405566 clocks per frame => 60hz refresh requires 24333960hz clock */

static struct s3c_fb_platdata mini6410_lcd_pdata __initdata = ;

2. 通過

s3c_fb_set_platdata

函式向核心註冊上面的資訊。具體做法為:

static void __init mini6410_machine_init(void)系統啟動時呼叫該函式初始化系統

{u32 cs1;

s3c_i2c0_set_platdata(null);

#ifdef config_s3c_dev_i2c1

s3c_i2c1_set_platdata(null);

#endif

s3c_fb_set_platdata(&mini6410_lcd_pdata);把lcd的初始值資訊註冊到核心中

#ifdef config_samsung_dev_ts

s3c24xx_ts_set_platdata(&s3c_ts_platform);

#endif

#ifdef config_touchscreen_mini6410

s3c_ts_set_platdata(&s3c_ts_platform);

#endif

s3c_sdhci0_set_platdata(&mini6410_hsmmc0_pdata);

s3c_sdhci1_set_platdata(&mini6410_hsmmc1_pdata);

3. 在make menuconfig的時候配置linux的logo選項,然後在graphic support->console frame support 選項中選上framebuffer console surpport,還要選上boot logo要不然看不到小企鵝。

Linux 2 6 38的LCD驅動分析(三)

三 解剖s3cfb driver變數 s3cfb driver變數有什麼作用呢?在前面的2.2節提到了它的定義,從它的原型可以看出s3cfb driver是個platform driver型別的變數,前面的幾個小節提到了從platform driver的名字可以看出它應該是platform devi...

Linux 2 6 38中ioctl的變化

linux驅動程式剛接觸,雖然不是很清楚,但是總歸是慢慢學習的過程。我的環境是fedora14虛擬機器。核心版本是2.6.38.1,其中的實現過程存在很多的問題,主要是因為很多的核心函式發生了較大的差別.其中最大的可能是ioctl以及互資訊量的實現。這兩個的問題也使得我們在驅動設計過程中出現很多的疑...

Linux的LCD驅動分析

linux的graphics子系統介紹 一 lcd介紹 liquid crystal display液晶顯示器,lcd按材料分有 stn 超扭曲陣列 tft 薄膜電晶體 ltps 低溫晶體多晶矽 oled 有機發光二極體 等。lcd的介面種類有 ttlrgb 數字rgb顏色介面 i80 又稱mcu介...