在大部分情况下,设备的memory和IRQ资源不足够让驱动正常工作。board setup code会用device的platform_data域来为设备提供一些额外的资源。
嵌入式系统上的设备会频繁地使用一个或者多个时钟,这些时钟因为节电的原因只有在真正使用的时候才会被打开,系统在启动过程中会为设备分配时钟,可以通过clk_get(&pdev->dev, clock_name)来获得需要的时钟。
可以使用platform_device_alloc动态地创建一个设备,一个更好的方法是,通过下面的函数动态创建一个设备,并把这个设备注册到系统中:
struct platform_device *platform_device_register_simple(
const char *name,
int id,
struct resource *res,
unsigned int nres
);
本文探讨了在嵌入式系统中如何管理设备资源,包括内存、IRQ及时钟等,并介绍了通过platform_data域提供额外资源的方法。此外还讨论了如何使用platform_device_alloc动态创建设备,以及如何利用platform_device_register_simple函数注册设备。

被折叠的 条评论
为什么被折叠?



