aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSugnan Prabhu S <sugnan.prabhu.s@intel.com>2021-12-03 19:07:04 +0530
committerFelix Held <felix-coreboot@felixheld.de>2021-12-13 13:54:21 +0000
commitdcf045918b8584d23e487f70959ebbb2ef4492b6 (patch)
tree9a2861ab977a417314d5d3c196f1ff602fb2d330
parentfeab8bb195961ec0fb441dcbe9f8cf33265bf37e (diff)
drivers/intel/mipi_camera: Add ACPI entry to provide silicon type info
Add entry in ACPI table under IPU device to provide silicon type information to IPU driver. IPU kernel driver can decide the type of firmware to load based on this information. BUG=b:207721978 BRANCH=none TEST=Check for the ACPI entry in the SSDT after booting to kernel Change-Id: I4e0af1dd50b9c014cae5454fcd4f9f76d0e0a85f Cq-Depend: chromium:3319905 Signed-off-by: Sugnan Prabhu S <sugnan.prabhu.s@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59869 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
-rw-r--r--src/drivers/intel/mipi_camera/camera.c10
-rw-r--r--src/soc/intel/alderlake/Kconfig6
2 files changed, 16 insertions, 0 deletions
diff --git a/src/drivers/intel/mipi_camera/camera.c b/src/drivers/intel/mipi_camera/camera.c
index a9af25cf12..ec7f20bf8d 100644
--- a/src/drivers/intel/mipi_camera/camera.c
+++ b/src/drivers/intel/mipi_camera/camera.c
@@ -5,7 +5,9 @@
#include <acpi/acpi_device.h>
#include <acpi/acpigen.h>
#include <acpi/acpigen_pci.h>
+#include <arch/cpu.h>
#include <console/console.h>
+#include <cpu/intel/cpu_ids.h>
#include <device/i2c_simple.h>
#include <device/device.h>
#include <device/path.h>
@@ -134,6 +136,14 @@ static void camera_fill_cio2(const struct device *dev)
snprintf(name, sizeof(name), "port%u", i);
port_name[i] = strdup(name);
+ if (CONFIG(ACPI_ADL_IPU_ES_SUPPORT)) {
+ u32 cpu_id = cpu_get_cpuid();
+ if (cpu_id == CPUID_ALDERLAKE_A0 || cpu_id == CPUID_ALDERLAKE_A1)
+ acpi_dp_add_integer(dsd, "is_es", 1);
+ else
+ acpi_dp_add_integer(dsd, "is_es", 0);
+ }
+
acpi_dp_add_child(dsd, port_name[i], port_table);
}
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index 89570b102b..9e69663acd 100644
--- a/src/soc/intel/alderlake/Kconfig
+++ b/src/soc/intel/alderlake/Kconfig
@@ -28,6 +28,7 @@ if SOC_INTEL_ALDERLAKE
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
+ select ACPI_ADL_IPU_ES_SUPPORT
select ARCH_X86
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
@@ -339,6 +340,11 @@ config SOC_INTEL_CRASHLOG
help
Enables CrashLog.
+config ACPI_ADL_IPU_ES_SUPPORT
+ def_bool n
+ help
+ Enables ACPI entry to provide silicon type information to IPU kernel driver.
+
if STITCH_ME_BIN
config CSE_BPDT_VERSION