am335x GPIO如何在设备树中编号?

时间:2014-04-28 11:25:18

标签: linux-device-driver embedded-linux i2c beagleboneblack device-tree

我正在尝试在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编号,则中断有效。

1 个答案:

答案 0 :(得分:1)

根据@sawdust的评论

<&gpio1 13 0>

表示三个值的数组。我通过手动计算GPIO编号并将其作为单个数字传递来解决了这个问题:

<14>