I2C总线(I2C bus,Inter-IC bus)是一个双向的两线连续总线,提供集成电路之间的通信线路。I2C总线采用一条数据线(SDA),加一条时钟线(SCL)来完成数据的传输及外围器件的扩展;对各个节点的寻址是软寻址方式,节省了片选线,标准的寻址字节SLAM为7位,可以寻址127个单元。I2C总线有三种数据传输速度:标准,快速模式和高速模式。标准的是100Kbps,快速模式为400Kbps,高速模式支持快至3.4Mbps的速度。

NXP i.MX6 CPU有三个最高可工作在400 Kbps的I2C总线,它提供完整的I2C功能,但Linux驱动中只包含I2C主机模式驱动。

在CC6的模块上,三个I2C总线接口:

  • I2C1没有使用
  • I2C2在模块内部连接着PMIC和协处理器MCA
  • I2C3可被外设使用

在CC6单板机上,I2C3用于连接下面设备:

  • PCIe 扩展卡
  • LVDS显示屏接口
  • HDMI显示器接口
  • MIPI显示屏接口
  • 并口显示屏接口
  • CSI摄像头接口
  • 音频编解码接口

I2C3在CC6单板机上也提供了一个扩展连接器,以扩展外设连接。

用户可以通过内核配置选项IMX I2C interface (CONFIG_I2C_IMX)来管理I2C驱动支持。默认地,CC6 SBC内核配置文件已经启用I2C驱动。

CC6模块的I2C总线驱动位于drivers/i2c/busses/i2c-imx.c。