如何从OF Device Tree将平台数据传递给我的i2c驱动程序?

时间:2014-04-18 09:17:25

标签: linux-device-driver i2c gpio irq device-tree

我正在为主要通过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?

1 个答案:

答案 0 :(得分:4)

找到解决方案。不仅i2c_board_info有一个of_node,还有struct device。因此可以通过client-&gt; dev.of_node。

访问设备节点