Skip to content

TPS68470 board-data missing for HP Elite x2 1012 G2 (dual-camera IPU3, ov5670 + ov7251) #452

Description

@optionsdepot

<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

  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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions