Linux平台驱动模型
基本概念
平台驱动模型是Linux内核中用于管理片上系统(SoC)外设的一种驱动框架。它将硬件资源与驱动程序分离,使得同一驱动可以适配不同的硬件平台。
主要包含两个核心组件:
平台设备(platform_device):描述硬件资源
平台驱动(platform_driver):实现设备驱动功能
平台设备(platform_device)
代表具体的硬件设备,包含设备名称、资源信息等:
struct platform_device {
const char *name;
int id;
struct device dev;
u32 num_resources;
struct resource *resource;
};
可以通过设备树(Device Tree)或ACPI静态定义,也可以动态注册。