Linux kernel 与PCA9548总线开关的I2C通信

Linux kernel 与PCA9548总线开关的I2C通信,linux-kernel,embedded,driver,linux-device-driver,i2c,Linux Kernel,Embedded,Driver,Linux Device Driver,I2c,目前,我正在使用内置Linux I2C内核驱动程序从PS与ZC706评估板上的I/O扩展器通信,该评估板包含Zynq 7000 XC7Z045 SoC。为此,我使用了以下链接 其中讨论了从用户空间使用I2C设备驱动程序。我的困惑是ZC706包含一个8通道多路复用器,您必须首先设置一个路径,如第55页的链接所示,以与连接到总线的设备进行通信。但是,我能够通过I/O扩展器与a通信,该扩展器连接到mux上的通道4,而无需设置通过mux的路径。我的步骤是首先打开适当的总线,设置与IO扩展器通信的从机地址

目前,我正在使用内置Linux I2C内核驱动程序从PS与ZC706评估板上的I/O扩展器通信,该评估板包含Zynq 7000 XC7Z045 SoC。为此,我使用了以下链接
其中讨论了从用户空间使用I2C设备驱动程序。我的困惑是ZC706包含一个8通道多路复用器,您必须首先设置一个路径,如第55页的链接所示,以与连接到总线的设备进行通信。但是,我能够通过I/O扩展器与a通信,该扩展器连接到mux上的通道4,而无需设置通过mux的路径。我的步骤是首先打开适当的总线,设置与IO扩展器通信的从机地址,然后通过向设备输出数据进行通信。这些步骤都不涉及配置8通道交换机,我不清楚为什么我能够在不配置mux的情况下与连接的设备通信。

您的意思是您不明白手册为什么这么说?我怀疑这说明完全从用户空间访问总线,而不涉及多路复用器驱动程序。在您的情况下,内核负责切换。啊,还有一件事:上面说明PCA9548是一个交换机,所以如果从设备的地址没有冲突,您可以启用所有通道。