<diagnosed up to this point using claude.ai Sonnet 5 Extra>
System
- Model: HP Elite x2 1012 G2
- Manufacturer: HP
- Board: 82CA
- Distro: Linux Mint 22.x (Ubuntu 24.04 base)
- Kernel: 6.17.0-35-generic
Hardware
Intel IPU3 (Kaby Lake) with two CSI-2 sensors:
ov5670 at ACPI INT3479:00 (i2c-INT3479:00)
ov7251 at ACPI INT347E:00 (i2c-INT347E:00)
Both are powered via a single TPS68470 PMIC at i2c-INT3472:05.
Problem
The TPS68470 driver fails to find board data for this model:
[ 23.998713] int3472-tps68470 i2c-INT3472:05: TPS68470 REVID: 0x21
[ 23.999058] int3472-tps68470 i2c-INT3472:05: error -ENODEV: No board-data found for this model
Downstream effects, all consistent with the PMIC never being configured:
ov7251's i2c device (i2c-INT347E:00) never appears under /sys/bus/i2c/devices/ at all.
ov5670 does enumerate, but only via dummy regulator fallback:
[ 24.207615] ov5670 i2c-INT3479:00: supply dvdd not found, using dummy regulator
[ 24.207767] ov5670 i2c-INT3479:00: supply dovdd not found, using dummy regulator
media-ctl -d /dev/media0 -p shows ov5670 registered but with 0 links, and ov7251 absent from the graph entirely — no CSI-2 link ever gets created for either camera.
Why I think this is a board-data gap, not something else
INT3472:05 is the same PMIC instance number as the already-supported Latitude 7212 Rugged Extreme Tablet entry in tps68470_board_data.c, and that board also uses ov5670/INT3479:00 with regulator names avdd/dvdd/dovdd. This looks like the same reference design, just missing a DMI entry for this HP model. Unlike the Dell board, this one also has a second sensor (ov7251) sharing the same PMIC, which I don't see covered by any existing entry.
Draft patch (untested — pin numbers are a guess, only covers ov5670)
static const struct int3472_tps68470_board_data hp_elitex2_1012g2_tps68470_board_data = {
.dev_name = "i2c-INT3472:05",
.tps68470_regulator_pdata = &dell_7212_tps68470_pdata,
.n_gpiod_lookups = 1,
.tps68470_gpio_lookup_tables = {
&dell_7212_int3479_gpios,
},
};
{
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "HP"),
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "HP Elite x2 1012 G2"),
},
.driver_data = (void *)&hp_elitex2_1012g2_tps68470_board_data,
},
What I'm looking for
- Confirmation/correction of the GPIO pin numbers for
ov5670's reset/powerdown lines on this board.
- Guidance on the second sensor (
ov7251) — no existing board-data entry covers a two-sensor TPS68470 setup, so I'm not sure what GPIO config it needs.
Happy to test patches, pull a DSDT dump, or run any other diagnostic on the actual hardware if that helps.
<diagnosed up to this point using claude.ai Sonnet 5 Extra>
System
Hardware
Intel IPU3 (Kaby Lake) with two CSI-2 sensors:
ov5670at ACPIINT3479:00(i2c-INT3479:00)ov7251at ACPIINT347E:00(i2c-INT347E:00)Both are powered via a single TPS68470 PMIC at
i2c-INT3472:05.Problem
The TPS68470 driver fails to find board data for this model:
[ 23.998713] int3472-tps68470 i2c-INT3472:05: TPS68470 REVID: 0x21
[ 23.999058] int3472-tps68470 i2c-INT3472:05: error -ENODEV: No board-data found for this model
Downstream effects, all consistent with the PMIC never being configured:
ov7251's i2c device (i2c-INT347E:00) never appears under/sys/bus/i2c/devices/at all.ov5670does enumerate, but only via dummy regulator fallback:[ 24.207615] ov5670 i2c-INT3479:00: supply dvdd not found, using dummy regulator
[ 24.207767] ov5670 i2c-INT3479:00: supply dovdd not found, using dummy regulator
media-ctl -d /dev/media0 -pshowsov5670registered but with 0 links, andov7251absent from the graph entirely — no CSI-2 link ever gets created for either camera.Why I think this is a board-data gap, not something else
INT3472:05is the same PMIC instance number as the already-supportedLatitude 7212 Rugged Extreme Tabletentry intps68470_board_data.c, and that board also usesov5670/INT3479:00with regulator namesavdd/dvdd/dovdd. This looks like the same reference design, just missing a DMI entry for this HP model. Unlike the Dell board, this one also has a second sensor (ov7251) sharing the same PMIC, which I don't see covered by any existing entry.Draft patch (untested — pin numbers are a guess, only covers ov5670)
{ .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "HP"), DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "HP Elite x2 1012 G2"), }, .driver_data = (void *)&hp_elitex2_1012g2_tps68470_board_data, },What I'm looking for
ov5670's reset/powerdown lines on this board.ov7251) — no existing board-data entry covers a two-sensor TPS68470 setup, so I'm not sure what GPIO config it needs.Happy to test patches, pull a DSDT dump, or run any other diagnostic on the actual hardware if that helps.