buttons_irq = platform_get_resource(pdev,IORESOURCE_IRQ,0); 在拿出第一份资源进行resource_type®判断资源类型时不符合(此时num-- == 0这句没有执行),进而拿出第二份资源,此时i=1,num_resources=7,num传递下来为0,资源类型判断时候匹配,num也等于0,从而确定资源并返回。 For第二次循环: buttons_irq =...
struct resource *platform_get_resource(struct platform_device *dev, unsigned int type, unsigned int num) //获取资源分配函数 参数: vdev: 资源所属的设备 vtype: 获取的资源类型 vnum: 获取的资源数 例: platform_get_resource(pdev, IORESOURCE_IRQ, 0) //获取中断 结构体平台驱动 struct platform_dri...
buttons_irq = platform_get_resource(pdev,IORESOURCE_IRQ,i); if(buttons_irq == NULL){ dev_err(dev,"no irq resource specified\n"); ret = -ENOENT; goto err_map; } button_irqs[i] = buttons_irq->start; } 分析如下: For第一次循环: buttons_irq = platform_get_resource(pdev,IORESOURCE_...
.flags = IORESOURCE_IRQ, } }; 驱动中通过下面代码拿到第一份资源: struct resource *res; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 函数进入for里面,i=0,num_resources=7,拿出resource[0]资源。resource_type(r)提取出该份资源 的资源类型并与函数传递下来的资源类型进行比较,匹配。Num=0...
.flags = IORESOURCE_IRQ, } }; = { .name = "s3c2410-wdt",//name要与platform_driver中的name一致 .id = -1, .num_resources = ARRAY_SIZE(s3c_wdt_resource), .resource = s3c_wdt_resource, }; static struct platform_device *smdk2440_devices[] __initdata = { ...
dev:指向平台设备的指针。 type:要获取的资源类型,可以是IORESOURCE_MEM、IORESOURCE_IO、IORESOURCE_IRQ等。 num:要获取的资源号,资源号从0开始计数。返回值是指向struct resource结构体的指针,如果获取失败则返回NULL。 2. 设备树(Device Tree)在嵌入式系统中的作用 ...
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); r = request_mem_region(r->start, SZ_4K, DRIVER_NAME); host->res = r; /* * 得到sd卡控制器芯片的内部中断源并申请中断 */ irq = platform_get_irq(pdev, 0); host->irq = irq; request_irq(host->irq, pxamci_irq, 0, DRIVER...
db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1); db->irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); /* sol_add */ printk("!!!\n");在位于drivers/base/platform.c中的platform...
. flags = IORESOURCE_IRQ, } } ; 这里定义了两组 resource ,它描述了一个 I2C 设备的资源,第 1 组描述了这个 I2C 设备所占用的总线地址范围, IORESOURCE_MEM 表示第 1 组描述的是内存类型的资源信息,第 2 组描述了这个 I2C 设备的中断号, IORESOURCE_IRQ 表示第 2 组描述的是中断资源信息。设备驱动会...
db->addr_res=platform_get_resource(pdev,IORESOURCE_MEM,0);db->addr_res=platform_get_resource(pdev,IORESOURCE_MEM,1);db->addr_res=platform_get_resource(pdev,IORESOURCE_IRQ,0); platform_data 设备数据 设备除了在BSP中定义资源(resource)外,还能附加一些数据信息,因为对设备的硬件描述除了中断、内存...