基於Exynos4412的lcd驅動1

2021-10-12 12:55:52 字數 1904 閱讀 8363

drivers/video/makefile中的約束條件,比如我的makefile是obj-$(config_fb_s3c) += s3c-fb.o

核心根目錄下的.config是否配置了config_fb_s3c這個巨集,比如我的.config是

接下來開始我們的**跟讀。

以下是檢視.config得到的資訊,關於lcd一些巨集的定義

config_fb_s5p_lms501kf03 is not set

config_fb_s3c is not set

config_fb_s5p_trace_underrun is not set

config_fb_s5p_virtual is not set

config_fb_s5p_lcd_init=y

config_fb_s5p=y

config_arch_exynos4=y

config_fb_s5p_default_window=0

config_fb_s5p_nr_buffers=2

config_has_wakelock=y

config_fb_s5p_nr_buffers=2

這是我們的啟動檔案

smdk4x12_machine_init

|#ifdef config_fb_s5p_lms501kf03 //這個巨集沒定義

spi_register_board_info(spi_board_info, array_size(spi_board_info));

s3cfb_set_platdata(&lms501kf03_data);

#else

s3cfb_set_platdata(null); //真正執行的函式,下一節分析

|platform_add_devices(smdk4x12_devices, array_size(smdk4x12_devices));

|smdk4412_devices

|#ifdef config_fb_s5p(這個巨集有定義,看第一節config)

&s3c_device_fb,

總結:會執行s3cfb_set_platdata(null)這個函式,註冊s3c_device_fb這個裝置

1.如下,註冊裝置,名字、資源、dma

struct platform_device s3c_device_fb =

};2.在看s3cfb_set_platdata函式前先了解乙個結構體,這個結構體主要定義了關於lcd的一系列操作函式,如背光開啟,設定引腳狀態,開時鐘。

struct s3c_platform_fb ;

接下來定義了乙個結構體變數default_fb_data ,對那些引數進行賦值。

static struct s3c_platform_fb default_fb_data __initdata = ;

最後主角來了,s3cfb_set_platdata函式,這個函式主要用來將上面s3c_platform_fb 結構體的值賦值到dev.platform_data(私有資料中去),這樣在驅動中,我們也能呼叫這些資料。

void __init s3cfb_set_platdata(struct s3c_platform_fb *pd)

}總結:所以說在啟動的時候核心會自動呼叫s3cfb_set_platdata函式,這個函式主要內容是硬體初始化,然後把這些資料賦值到dev.platform_data,以便於後續再pdrv中使用。

這是乙個全域性變數s3cfb_global 。

struct s3cfb_global ;

這個結構體中包括解析度、時鐘、極性等

struct s3cfb_lcd

void s3cfb_set_lcd_info(struct s3cfb_global *ctrl)

這樣pdev的內容就講完了,主要講了硬體引數是包裝在什麼結構體之中,是如何傳遞給驅動的。

Exynos4412 系統移植

移植要點 1 環境搭建 2 boot配置 移植 編譯及燒寫 3 kernel配置 移植 燒寫及除錯 4 根檔案系統的製作gcc編譯流程 預處理 編譯彙編 鏈結核心子系統 程序管理 記憶體管理 檔案系統 裝置管理 網路交叉編譯工具鏈安裝步驟 1 解壓gcc 4.6.4.tar.gz到 toolchai...

Exynos4412啟動過程分析

學習exynos4412啟動流程前,我們先看看三星4412晶元啟動框圖 我們從圖中可以看到4412內部有64k的rom和256k sram,在rom中已經固化好了一段 當硬體上電後首先執行的就是這段 這段 三星起名為blo irom boot 其作用是初始化sram,並將emmc中256k 拷貝到s...

exynos4412中斷程式設計

我們知道,arm核能處理的異常有7種,但僅僅區分異常的種類顯然不能夠滿足需求。拿手機來說,觸控螢幕和按下音量鍵可能都是irq異常,但是arm並不能將他們區分開,而事實的情況是針對這兩種中斷,我們的處理方式顯然不同,為此就需要在soc中整合中斷控制器 generic interupt controll...