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 番号を手動でオーバーライドすると、割り込みが機能します。