主に i2c 経由で通信するチップのドライバーを作成していますが、GPIO ピンを使用して信号を送ります。関連するデバイス ツリー ノードは次のようになります。
&i2c1 {
status = "okay";
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
my_dev: my_dev@0c {
compatible = "my_dev,my_dev";
reg = <0x0c>;
irq_gpio = <&gpio0 14 0>;
};
};
ドライバーから irq_gpio 値を読み取れるようにしたいので、(gpio_to(irq()) を介して) irq を要求し、設定を行うことができます。struct i2c_board_info の of_node メンバーに到達する必要があることがわかりました。ただし、ドライバーのプローブ関数は、i2c_client および i2c_device_id 構造体のみを取得します. i2c_client またはデバイス ID から開始して、目的の of_node に到達するにはどうすればよいですか?