bus , device , driver. 三者就是必須了解的基本元素.
CPU要執行某裝置的功能簡單的流程如下:
CPU->bus->device->driver
1. Bus 是CPU與各個裝置的連結通道,CPU 透過bus找到device.
2. Device是接在bus上的實體裝置
3. Driver則詳細定義了裝置的各項功能
Platform bus 是一個虛擬通道,現在大多數裝置都是建立在platform bus 上.
它可分為兩部份: platform_device 與 platform_driver
platform_device 的基礎定義:
struct platform_device {
const char *name;
u32 id;
struct device dev;
u32 num_resources;
struct resource *resource;
};platform_driver的基礎定義
struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*suspend_late)(struct platform_device *, pm_message_t state);
int (*resume_early)(struct platform_device *);
int (*resume)(struct platform_device *);
struct device_driver driver;
};要利用platform bus管理裝置可透過:
int platform_device_add(struct platform_device *pdev);int platform_device_register(struct platform_device *);來註冊裝置.
這些定義可以在kernel/include/linux/platform_device.h找到.
沒有留言:
張貼留言