我正在为主要通过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值,因此我可以请求irq(通过gpio_to(irq())并进行设置。我发现我需要访问struct i2c_board_info的of_node成员。但是,驱动程序的探测功能只获取i2c_client和i2c_device_id结构。如何从i2c_client或设备ID开始到达所需的of_node? p>
答案 0 :(得分:4)
找到解决方案。不仅i2c_board_info有一个of_node,还有struct device。因此可以通过client-&gt; dev.of_node。
访问设备节点