TPS68470 board-data missing for HP Elite x2 1012 G2 (dual-camera IPU3, ov5670 + ov7251)
- Dominant language
- C
- Stars
- 251
- Forks
- 75
- PR merge metrics
- No merged PRs in 30d
Description
**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)**
```c
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,
},
};
```
```c
{
.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**
1. Confirmation/correction of the GPIO pin numbers for `ov5670`'s reset/powerdown lines on this board.
2. 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.
Contributor guide
Research direction
Start in tps68470_board_data.c by comparing the Latitude 7212 entry with the HP Elite x2 1012 G2 hardware described here. Use a DSDT dump and the existing kernel logs to verify GPIO mappings for both ov5670 and ov7251, then test the board-data changes and confirm both sensors enumerate with CSI-2 links in media-ctl.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- embedded-iot, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100