diff --git a/src/drivers/intel/mipi_camera/camera.c b/src/drivers/intel/mipi_camera/camera.c index 65eba16cdc..ec79e39a60 100644 --- a/src/drivers/intel/mipi_camera/camera.c +++ b/src/drivers/intel/mipi_camera/camera.c @@ -433,6 +433,9 @@ static void camera_fill_sensor(const struct device *dev) acpi_dp_add_array(dsd, lens_focus); } + if (config->low_power_probe) + acpi_dp_add_integer(dsd, "i2c-allow-low-power-probe", 0x01); + acpi_dp_add_child(dsd, "port0", prt0); acpi_dp_write(dsd); @@ -480,6 +483,10 @@ static void camera_fill_nvm(const struct device *dev) acpi_dp_add_integer(dsd, "address-width", config->nvm_width); acpi_dp_add_string(dsd, "compatible", config->nvm_compat); + + if (config->low_power_probe) + acpi_dp_add_integer(dsd, "i2c-allow-low-power-probe", 0x01); + acpi_dp_write(dsd); } @@ -493,6 +500,10 @@ static void camera_fill_vcm(const struct device *dev) dsd = acpi_dp_new_table("_DSD"); acpi_dp_add_string(dsd, "compatible", config->vcm_compat); + + if (config->low_power_probe) + acpi_dp_add_integer(dsd, "i2c-allow-low-power-probe", 0x01); + acpi_dp_write(dsd); } diff --git a/src/drivers/intel/mipi_camera/chip.h b/src/drivers/intel/mipi_camera/chip.h index 28f8464ec2..64942b6536 100644 --- a/src/drivers/intel/mipi_camera/chip.h +++ b/src/drivers/intel/mipi_camera/chip.h @@ -247,6 +247,8 @@ struct drivers_intel_mipi_camera_config { const char *vcm_compat; /* Does the device have a power resource entries */ bool has_power_resource; + /* Perform low power probe */ + bool low_power_probe; }; #endif