今天完成了 OK6410 的LCD 驅動移植,那麼直接進入正題,我的操作環境是:
主機: XP系統, VMware Ubuntu 10.10 虛擬機。 開發板:OK6410,A板,256M+2G 。 LCD :飛凌4.3 寸TFT ,WXCAT43, 480*272
Uboot: 飛凌體統的Uboot。 移植內核版本:Linux1.6.36.2。 參考內核: 飛凌提供的 Linux2.6.36.2
如果你是參考這篇博文來移植的話,我還是要強調一下上面的 開發板環境 和 移植內核的版本,這很重要,因為不同的硬件有不同的要求和
說明,而不同的內核版本之間又有著不同的差異性。 當然這些也並不是絕對的。其他的環境也可以參考這篇博文。
我先來講講對於飛凌的OK6410 開發板 LCD 驅動移植的操作步驟,再來分析這些操作步驟和網上 LCD 驅動移植在方法和效果不同的地方。
LCD 驅動移植所依賴的文件有:
arch/arm/mach-s3c64xx/mach-smdk6410.c drivers/videl/samsung/s3cfb.c
drivers/videl/samsung/s3cfb_spi.c drivers/videl/samsung/WXCAT43.c
arch/arm/mach-s3c64xx/include/mach/regs-lcd.h
1、 修改 arch/arm/mach-s3c64xx/mach-smdk6410.c
注釋掉 smdk6410_machine_init(void) 中的
在 sruct map_desc smdk6410_iodesc[] 中添加 LCD support
操作說明:這裡不用奇怪為什麼僅僅這有這麼少的修改, 因為飛凌的一貫作風就好似寧可少改,套用,仿照。 也不願去建立自己的目錄項。
就像它將 smdk6410 作為它的開發板目錄,而不去創建一個OK6410 的開發板基准目錄一樣。 在這裡飛凌依舊沿用了他的這種作風,你可
以查看一下 在smdk6410.c 中是否已經有過 lcd 的一些結構體 和函數體, 飛凌就是利用了這些已經存在了的,而沒有自己建立,學習飛凌
的開發板,你要學會適應這些。呵呵!
2、添加 drivers/video/samsung 目錄。
我從linux.org 下載的基礎內核沒有 drivers/video/samsung 這個目錄,所以需要添加。你可以 copy 飛凌2.6.36 源碼下的 samsung 到你的
內核目錄,這個目錄下的文件主要是 Makefile, Kconfig ,s3cfb.c s3cfb_spi.c WXCAT43.c 這些就是你的LCD 驅動依賴文件。