Reputation: 2042
I have a laptop running 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. For example for the front camera, the ACPI tables have this to say:
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. There is a chip at 0x0c, but only one chip on the I2C bus for two cameras. 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?
Further Info:
Laptop Specs: Lenovo Miix 510. Original installed OS by OEM was Windows 10. The camera sensors are an OVTI2680 and an OVTI5648.
Full DSDT tables in this gist
Upvotes: 0
Views: 2272
Reputation: 4674
Do you have camera PMIC drivers loaded? Your camera sensors likely are powered off. The camera PMIC is TPS68470 chip which is represented by three drivers:
All three must be enabled and loaded in order to get power gating work.
Side note regarding to I²C addresses: In datasheet the addresses most probably are in 8-bit format, means the real ones (7-bit) are 0x10 or 0x36.
Upvotes: 1