平台匯流排驅動模型

2021-06-18 06:54:16 字數 1356 閱讀 8771

arch/arm/plat-s3c24xx/devs.c 這個函式實現的平台匯流排模型中的

platform_device

/* 1. 註冊各種資源 */

struct resource s3c2410_uart0_resource等各種資源

static struct resource s3c_lcd_resource = ,

[1] =

}/* 2. 並分配平台裝置 */

struct platform_device s3c_device_*** =

/* 3. 註冊在哪platform_device_register? */

platform_driver

struct platform_driver led_drv =

};platform_driver_register

***_probe

設定:platform_get_resource等進行各種資源的設定

register_chrdev( major, name, struct file_operations *fops)

class_create

class_device_create

當然對於具體的driver函式可以用input輸入子系統來完成,

對於lcd,register_chrdev→register_framebuffer, fops→s3c_fb

對於gpio_keys.c中輸入子系統,當然實際上只是核心中的乙個例程,核心並沒有分配資源給它

gpio_keys_probe(struct platform_device *pdev)

input = input_allocate_device();

相關設定

input_register_device(input);

對於s3c2410ts.c中也用到了輸入子系統,它的platform_device就是在devs.c實現的

platform_driver

s3c2410_ts_probe

input = input_allocate_device();

相關設定

input_register_device(input);

匯流排平台:

platform_device  需要自己實現:1. 註冊資源 2. 分配平台裝置 3. 註冊平台裝置

platform_driver    比較穩定的**

input->device  需要自己實現 1.分配乙個input_dev結構體  2.設定能產生哪些事件 3. 註冊input_register_device(buttons_dev) 4. 硬體相關的操作

input->handler 一般的handler由核心實現

Linux平台匯流排驅動裝置模型

platform匯流排是一種虛擬的匯流排,相應的裝置則為platform device,而驅動則為platform driver。linux 2.6的裝置驅動模型中,把i2c rtc lcd等都歸納為platform device。匯流排將裝置和驅動繫結,在系統每註冊乙個裝置的時候,會尋找與之匹配的...

平台匯流排模型

平台匯流排模型主要分為3個部分,1.driver 2.device 3.bus device主要放硬體相關的東西 driver裡面主要存放的比較穩定的 我們依然可以檢視gpio keys.c這個 來學習 平台匯流排是一種虛擬的匯流排 driver這個結構體會通過呼叫platform driver r...

驅動 11 2 匯流排驅動模型

為了統一晶元裝置驅動框架 核心中設計了一套 struct bus type bus register void bus unregister struct bus type bus ls sys bus struct device int device register struct device ...