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找到.
沒有留言:
張貼留言