我正在尝试在 BeagleboneBlack 上使用带有 gpio 中断的驱动程序。我的设备树有以下用于我的自定义设备的条目:
&i2c1{...
mydevice: mydevice@0c {
compatible = "mydevice,mydeice";
reg = <0x0c>;
mag_irq_gpio = <&gpio1 13 0>; /* INT line */
};
...}
它的驱动程序对应物有:
static int parse_dt(struct i2c_client *client)
{
struct device_node *node = client->dev.of_node;
struct mydev_data *data = i2c_get_clientdata(client);
return of_property_read_u32(node, "mag_irq_gpio", &data->gpio);
}
驱动程序加载并正常工作,除了 gpio 编号完全错误。属性读取函数返回成功,并读取 8 作为 gpio 编号,即使我将不同的编号放入设备树。
我应该如何将 gpio 编号作为通用数据传递?如果我手动覆盖驱动程序中的 gpio 编号,则中断有效。