1

主に 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 に到達するにはどうすればよいですか?

4

1 に答える 1

4

解決策を見つけました。i2c_board_info だけでなく、of_node だけでなく、構造体デバイスもあります。そのため、デバイス ノードには client->dev.of_node からアクセスできます。

于 2014-04-18T12:18:27.983 に答える