我有一个i2c设备(触摸控制器)。通常情况下,当连接到SoC i2c主机时(在我的情况下是Tegra芯片),我会像这样将其添加到.dts文件中:
i2c@7000c000 {
st1332: touchscreen@55 {
compatible = "sitronix,st1232";
reg = <0x55>;
interrupt-parent = <&gpio>;
interrupts = <189 IRQ_TYPE_EDGE_FALLING>;
};
};
在SoC的.dtsi文件中定义了i2c控制器i2c@7000c000
:
i2c1: i2c@7000c000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "nvidia,tegra124-i2c";
reg = <0x0 0x7000c000 0x0 0x100>;
interrupts = <0 38 0x04>;
scl-gpio = <&gpio 20 0>; /* gpio PC4 */
sda-gpio = <&gpio 21 0>; /* gpio PC5 */
nvidia,memory-clients = <14>;
status = "okay";
clock-frequency = <400000>;
};
然而,我不想将触摸控制器连接到SoC的i2c主控之一。相反,我将其连接到cp2112 USB至i2c桥上。
cp2112驱动程序正常工作:我可以使用诸如i2cget之类的命令从命令行访问它。但是,我该如何将它添加到.dts文件中,以便触摸控制器驱动程序与其通信?
由于USB设备会自动枚举,因此我没有在.dts文件中拥有可用作触摸控制器节点父节点的节点。我会假设需要在usb控制器(xusb@70090000)下的.dts文件中创建一个占位符节点,然后由内核将枚举的USB设备与该节点关联,并将触摸控制器移入此节点,但我不知道该怎么做。这样的USB设备节点会是什么样子?或者是否有完全不同的解决方案?
我正在运行Linux 3.10.40,使用来自Linux v4.1.0-rc5的hid-cp2112的回溯版本。
/i2c@cp2112
)?我正在使用i2c-tiny-usb,但在/proc/device-tree
中找不到任何参考信息。 - hardillb