Re: [PATCH v3 5/5] media: ov8858: add ACPI device ID INT3477 and vsio power supply

Hans de Goede
2026-04-17T18:59:20Z

Hi,

On 17-Apr-26 18:32, Thierry Chatard wrote:
> The Omnivision OV8858 appears in ACPI firmware under the HID INT3477 on
> Intel IPU3-based platforms such as the Dell Latitude 5285 2-in-1. Add
> INT3477 to the ACPI match table so the driver binds when instantiated by
> ipu_bridge.
>
> On the Dell Latitude 5285 the OV8858 is powered through a TPS68470 PMIC.
> The TPS68470 VSIO regulator controls the S_I2C_CTL register (0x43) which
> enables I2C passthrough to the sensor. The board data for this machine
> maps VSIO to the supply name "vsio" for INT3477. Add "vsio" to
> ov8858_supply_names[] so the driver requests this regulator at probe time.
>
> The existing supply array had a duplicate "dvdd" entry; replace it with
> the new "vsio" entry and reorder to: avdd, dvdd, dovdd, vsio.
>
> Signed-off-by: Thierry Chatard <tchatard@gmail.com>
> ---
> drivers/media/i2c/ov8858.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
> index 3f45f7fab..5bfea237b 100644
> --- a/drivers/media/i2c/ov8858.c
> +++ b/drivers/media/i2c/ov8858.c
> @@ -79,8 +79,9 @@
>
> static const char * const ov8858_supply_names[] = {
> "avdd", /* Analog power */
> - "dovdd", /* Digital I/O power */
> "dvdd", /* Digital core power */
> + "dovdd", /* Digital I/O power */
> + "vsio", /* Secondary I2C / S_I2C_CTL enable */
> };

As discussed in my review of patch 3/5 I don't think we need/want this.
Any I2C pass-through stuff on the way to the sensor should be transparent
to the sensor-driver itself.

> struct regval {
> @@ -1981,11 +1982,18 @@ static const struct of_device_id ov8858_of_match[] = {
> };
> MODULE_DEVICE_TABLE(of, ov8858_of_match);
>
> +static const struct acpi_device_id ov8858_acpi_ids[] = {
> + { "INT3477" },
> + { /* sentinel */ },
> +};
> +MODULE_DEVICE_TABLE(acpi, ov8858_acpi_ids);
> +
> static struct i2c_driver ov8858_i2c_driver = {
> .driver = {
> .name = "ov8858",
> .pm = &ov8858_pm_ops,
> .of_match_table = ov8858_of_match,
> + .acpi_match_table = ACPI_PTR(ov8858_acpi_ids),

No need for ACPI_PTR() as you declare ov8858_acpi_ids[]
unconditionally.

> },
> .probe = ov8858_probe,
> .remove = ov8858_remove,

Regards,

Hans