platform_get_resource 函数
时间: 2024-05-02 18:20:55 浏览: 10
platform_get_resource 函数是 Linux 操作系统中的一个函数,用于获取一个设备的资源信息。它的原型如下:
```c
struct resource *platform_get_resource(struct platform_device *dev,
unsigned int type,
unsigned int num);
```
其中,dev 是一个 platform_device 结构体指针,代表了一个平台设备;type 是资源的类型,如 IORESOURCE_MEM 表示内存资源,IORESOURCE_IRQ 表示中断资源等;num 是资源的编号,对于同一类型的资源,编号从 0 开始递增。
该函数的作用是在设备树中查找指定平台设备的指定资源,并返回一个 resource 结构体指针,该结构体包含了该资源的起始地址和长度等信息。
例如,下面的代码片段演示了如何通过 platform_get_resource 函数获取一个设备的中断资源:
```c
struct resource *irq_res;
int irq;
irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!irq_res) {
dev_err(&pdev->dev, "Failed to get IRQ resource\n");
return -ENODEV;
}
irq = irq_res->start;
```
上述代码首先调用 platform_get_resource 函数获取设备的第一个中断资源(num 为 0),然后从返回的 resource 结构体中获取中断号。如果获取资源失败,则返回 -ENODEV 表示设备不存在。