0

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番号が完全に間違っていることを除いて、ドライバーはロードされ、正常に動作します。プロパティ読み取り関数は成功を返し、デバイス ツリーに別の番号を入力しても、gpio 番号として 8 を読み取ります。

gpio 番号を汎用データとして渡すにはどうすればよいですか? ドライバー内の gpio 番号を手動でオーバーライドすると、割り込みが機能します。

4

1 に答える 1