soc/intel/apollolake: Hook up GMA ACPI brightness controls

Add struct i915_gpu_controller_info for boards to supply info needed
to generate ACPI backlight control SSDT.

Hook into soc/common framework by implementing intel_igd_get_controller_info().

Add Kconfig entries to set the correct register offsets for backlight
frequency and duty cycle.

Change-Id: Ia62a88b58e7efd90f550000fc5b2cef0cb5fade7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40593
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index 4f762a9..62049b5 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -413,4 +413,22 @@
 	string
 	default "pdpt pt"
 
+config INTEL_GMA_PANEL_2
+	bool
+	default n
+
+config INTEL_GMA_BCLV_OFFSET
+	default 0xc8358 if INTEL_GMA_PANEL_2
+	default 0xc8258
+
+config INTEL_GMA_BCLV_WIDTH
+	default 32
+
+config INTEL_GMA_BCLM_OFFSET
+	default 0xc8354 if INTEL_GMA_PANEL_2
+	default 0xc8254
+
+config INTEL_GMA_BCLM_WIDTH
+	default 32
+
 endif
diff --git a/src/soc/intel/apollolake/chip.h b/src/soc/intel/apollolake/chip.h
index c94b7ef..482b333 100644
--- a/src/soc/intel/apollolake/chip.h
+++ b/src/soc/intel/apollolake/chip.h
@@ -41,6 +41,9 @@
 	 */
 	struct i915_gpu_panel_config panel_cfg[2];
 
+	/* i915 struct for GMA backlight control */
+	struct i915_gpu_controller_info gfx;
+
 	/*
 	 * Mapping from PCIe root port to CLKREQ input on the SOC. The SOC has
 	 * four CLKREQ inputs, but six root ports. Root ports without an
diff --git a/src/soc/intel/apollolake/graphics.c b/src/soc/intel/apollolake/graphics.c
index c24ccdf..257222f 100644
--- a/src/soc/intel/apollolake/graphics.c
+++ b/src/soc/intel/apollolake/graphics.c
@@ -74,3 +74,10 @@
 	for (i = 0; i < ARRAY_SIZE(conf->panel_cfg); ++i)
 		graphics_configure_backlight(&conf->panel_cfg[i], mmio, i);
 }
+
+const struct i915_gpu_controller_info *
+intel_igd_get_controller_info(const struct device *device)
+{
+	struct soc_intel_apollolake_config *chip = device->chip_info;
+	return &chip->gfx;
+}