简体   繁体   English

如何识别 i2c 地址的设备?

[英]How to identify device at i2c address?

I have a laptop running Ubuntu, kernel v5.8.我有一台运行 Ubuntu、kernel v5.8 的笔记本电脑。 It has two cameras which lack of functional drivers, and I want to try to get them to work.它有两个缺少功能驱动程序的相机,我想尝试让它们工作。

I'm hitting an immediate hurdle in that the devices don't seem to be present in the way I (or indeed the ACPI tables) expect.我遇到了一个直接的障碍,因为这些设备似乎并没有以我(或者实际上是 ACPI 表)期望的方式存在。 For example for the front camera, the ACPI tables have this to say:例如对于前置摄像头,ACPI 表有这样的说法:

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (SBUF, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x0010, ControllerInitiated, 0x00061A80,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C2",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                })
                Return (SBUF) /* \_SB_.PCI0.CAM1._CRS.SBUF */
            }

and the datasheet somewhat contradictory addresses:和数据表有些矛盾的地址:

The 8-bit address of the OV2680 is 0x20 when SID pin is set to 1 or 0x6C when SID pin is set to 0.

But none of that's helpful, because there's no chip at 0x10, 0x6C or 0x20.但这些都没有帮助,因为 0x10、0x6C 或 0x20 处没有芯片。 There is a chip at 0x0c, but only one chip on the I2C bus for two cameras. 0x0c 处一个芯片,但 I2C 总线上只有一个芯片用于两个摄像头。 This makes me suspect that perhaps the cameras are behind a multiplexer or something, but I can't find any documentation on that.这让我怀疑相机可能在多路复用器或其他东西后面,但我找不到任何文档。 How can I identify what device is running on a particular I2C port, so that I can figure out what the thing at 0x0c is?如何识别特定 I2C 端口上正在运行的设备,以便弄清楚 0x0c 处的内容是什么?

Further Info:更多信息:

Laptop Specs: Lenovo Miix 510. Original installed OS by OEM was Windows 10. The camera sensors are an OVTI2680 and an OVTI5648.笔记本电脑规格:联想 Miix 510。OEM 原始安装的操作系统是 Windows 10。摄像头传感器是 OVTI2680 和 OVTI5648。

Full DSDT tables in this gist 本要点中的完整 DSDT 表

Do you have camera PMIC drivers loaded?您是否已加载相机 PMIC 驱动程序? Your camera sensors likely powered off.您的相机传感器可能已关闭。 The camera PMIC is TPS68470 chip which is represented by three drivers:摄像头PMIC为TPS68470芯片,由三个驱动代表:

  1. PMIC as Multi-Functional Device (MFD) driver with ACPI ID INT3472 PMIC 作为具有 ACPI ID INT3472 的多功能设备 (MFD) 驱动程序
  2. GPIO driver for it, and它的GPIO 驱动程序,以及
  3. OpRegion driver to support access from ACPI code支持从 ACPI 代码访问的OpRegion 驱动程序

All three must be enabled and loaded in order to get power gating work.必须启用并加载所有三个才能进行电源门控工作。

Side note regarding to I²C addresses.关于 I²C 地址的旁注。 In data sheet the addresses most probably are in 8-bit format, means the real ones (7-bit) are 0x10 or 0x36.在数据表中,地址很可能是 8 位格式,意味着真正的地址(7 位)是 0x10 或 0x36。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM