<p>Matt DeVillier has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27411">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">google/glados: Convert to variant setup<br><br>Convert Skylake reference board glados to variant setup in<br>preparation for merge with existing Skylake boards chell and lars,<br>and upstreaming of new boards asuka, caroline, cave, and sentry.<br><br>The following changes have been made:<br>- move DPTF to variant subdir<br>- move non-common EC defs to variant subdir<br>- adjust Kconfig for variant setup<br>- move non-common NHLT config to variant Kconfig<br>- make non-common NHLT ACPI code conditional<br>- move devicetree to variant subdir<br>- move board GPIO defs to variant subdir<br>- move board PEI data to variant subdir<br>- move SPD index calculation to romstage so available for<br>    dual-channel determination during PEI for boards which need it<br>- move SPD compilation to variant makefile<br>- add weak function for determination of dual-channel RAM<br>- add weak function for mainboard_gpio_smi_sleep() so SKL-Y variants<br>    can override and power down rails as needed<br><br>Test: build google/glados<br><br>Change-Id: I41615979dc11b5a10e32d6b5f477a256735cde53<br>Signed-off-by: Matt DeVillier <matt.devillier@gmail.com><br>---<br>M src/mainboard/google/glados/Kconfig<br>M src/mainboard/google/glados/Kconfig.name<br>M src/mainboard/google/glados/Makefile.inc<br>M src/mainboard/google/glados/acpi/dptf.asl<br>M src/mainboard/google/glados/acpi/ec.asl<br>M src/mainboard/google/glados/acpi/mainboard.asl<br>M src/mainboard/google/glados/acpi/superio.asl<br>M src/mainboard/google/glados/bootblock_mainboard.c<br>M src/mainboard/google/glados/chromeos.c<br>M src/mainboard/google/glados/mainboard.c<br>M src/mainboard/google/glados/ramstage.c<br>M src/mainboard/google/glados/romstage.c<br>M src/mainboard/google/glados/smihandler.c<br>M src/mainboard/google/glados/spd/spd.c<br>A src/mainboard/google/glados/variants/baseboard/include/baseboard/variant.h<br>R src/mainboard/google/glados/variants/glados/Makefile.inc<br>R src/mainboard/google/glados/variants/glados/devicetree.cb<br>A src/mainboard/google/glados/variants/glados/include/variant/acpi/dptf.asl<br>A src/mainboard/google/glados/variants/glados/include/variant/acpi/mainboard.asl<br>A src/mainboard/google/glados/variants/glados/include/variant/ec.h<br>R src/mainboard/google/glados/variants/glados/include/variant/gpio.h<br>R src/mainboard/google/glados/variants/glados/variant.c<br>22 files changed, 223 insertions(+), 134 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/11/27411/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/google/glados/Kconfig b/src/mainboard/google/glados/Kconfig</span><br><span>index 9a2e4cc..5bed271 100644</span><br><span>--- a/src/mainboard/google/glados/Kconfig</span><br><span>+++ b/src/mainboard/google/glados/Kconfig</span><br><span>@@ -1,13 +1,11 @@</span><br><span style="color: hsl(0, 100%, 40%);">-if BOARD_GOOGLE_GLADOS</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-config BOARD_SPECIFIC_OPTIONS # dummy</span><br><span style="color: hsl(0, 100%, 40%);">-  def_bool y</span><br><span style="color: hsl(120, 100%, 40%);">+config BOARD_GOOGLE_BASEBOARD_GLADOS</span><br><span style="color: hsl(120, 100%, 40%);">+      def_bool n</span><br><span>   select BOARD_ROMSIZE_KB_16384</span><br><span>        select DRIVERS_I2C_GENERIC</span><br><span>   select DRIVERS_I2C_NAU8825</span><br><span>   select EC_GOOGLE_CHROMEEC</span><br><span style="color: hsl(0, 100%, 40%);">-       select EC_GOOGLE_CHROMEEC_BOARDID</span><br><span>    select EC_GOOGLE_CHROMEEC_ACPI_MEMMAP</span><br><span style="color: hsl(120, 100%, 40%);">+ select EC_GOOGLE_CHROMEEC_BOARDID</span><br><span>    select EC_GOOGLE_CHROMEEC_LPC</span><br><span>        select EC_GOOGLE_CHROMEEC_MEC</span><br><span>        select EC_GOOGLE_CHROMEEC_PD</span><br><span>@@ -21,6 +19,8 @@</span><br><span>     select SOC_INTEL_SKYLAKE</span><br><span>     select SYSTEM_TYPE_LAPTOP</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+if BOARD_GOOGLE_BASEBOARD_GLADOS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> config VBOOT</span><br><span>    select EC_GOOGLE_CHROMEEC_SWITCHES</span><br><span>   select VBOOT_LID_SWITCH</span><br><span>@@ -35,12 +35,20 @@</span><br><span> </span><br><span> config MAINBOARD_PART_NUMBER</span><br><span>    string</span><br><span style="color: hsl(0, 100%, 40%);">-  default "Glados"</span><br><span style="color: hsl(120, 100%, 40%);">+    default "Glados" if BOARD_GOOGLE_GLADOS</span><br><span> </span><br><span> config MAINBOARD_FAMILY</span><br><span>     string</span><br><span>       default "Google_Glados"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+config VARIANT_DIR</span><br><span style="color: hsl(120, 100%, 40%);">+     string</span><br><span style="color: hsl(120, 100%, 40%);">+        default "glados" if BOARD_GOOGLE_GLADOS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config DEVICETREE</span><br><span style="color: hsl(120, 100%, 40%);">+        string</span><br><span style="color: hsl(120, 100%, 40%);">+        default "variants/glados/devicetree.cb" if BOARD_GOOGLE_GLADOS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> config MAX_CPUS</span><br><span>        int</span><br><span>  default 8</span><br><span>@@ -52,20 +60,18 @@</span><br><span> config INCLUDE_NHLT_BLOBS</span><br><span>         bool "Include blobs for audio."</span><br><span>    select NHLT_DMIC_2CH</span><br><span style="color: hsl(0, 100%, 40%);">-    select NHLT_DMIC_4CH</span><br><span>         select NHLT_NAU88L25</span><br><span style="color: hsl(0, 100%, 40%);">-    select NHLT_SSM4567</span><br><span> </span><br><span> config EC_GOOGLE_CHROMEEC_BOARDNAME</span><br><span>       string</span><br><span style="color: hsl(0, 100%, 40%);">-  default "glados"</span><br><span style="color: hsl(120, 100%, 40%);">+    default "glados" if BOARD_GOOGLE_GLADOS</span><br><span> </span><br><span> config EC_GOOGLE_CHROMEEC_PD_BOARDNAME</span><br><span>      string</span><br><span style="color: hsl(0, 100%, 40%);">-  default "glados_pd"</span><br><span style="color: hsl(120, 100%, 40%);">+ default "glados_pd" if BOARD_GOOGLE_GLADOS</span><br><span> </span><br><span> config GBB_HWID</span><br><span>  string</span><br><span>       depends on CHROMEOS</span><br><span style="color: hsl(0, 100%, 40%);">-     default "GLADOS TEST 1988"</span><br><span style="color: hsl(120, 100%, 40%);">+  default "GLADOS TEST 1988" if BOARD_GOOGLE_GLADOS</span><br><span> endif</span><br><span>diff --git a/src/mainboard/google/glados/Kconfig.name b/src/mainboard/google/glados/Kconfig.name</span><br><span>index 3d1bd68..a047c79 100644</span><br><span>--- a/src/mainboard/google/glados/Kconfig.name</span><br><span>+++ b/src/mainboard/google/glados/Kconfig.name</span><br><span>@@ -1,2 +1,7 @@</span><br><span style="color: hsl(120, 100%, 40%);">+comment "Glados"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> config BOARD_GOOGLE_GLADOS</span><br><span style="color: hsl(0, 100%, 40%);">- bool "Glados"</span><br><span style="color: hsl(120, 100%, 40%);">+       bool "->  Glados Skylake Reference Board"</span><br><span style="color: hsl(120, 100%, 40%);">+        select BOARD_GOOGLE_BASEBOARD_GLADOS</span><br><span style="color: hsl(120, 100%, 40%);">+  select NHLT_DMIC_4CH</span><br><span style="color: hsl(120, 100%, 40%);">+  select NHLT_SSM4567</span><br><span>diff --git a/src/mainboard/google/glados/Makefile.inc b/src/mainboard/google/glados/Makefile.inc</span><br><span>index 9160266..9bc4d5b 100644</span><br><span>--- a/src/mainboard/google/glados/Makefile.inc</span><br><span>+++ b/src/mainboard/google/glados/Makefile.inc</span><br><span>@@ -17,7 +17,7 @@</span><br><span> </span><br><span> bootblock-y += bootblock_mainboard.c</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-romstage-y += pei_data.c</span><br><span style="color: hsl(120, 100%, 40%);">+romstage-y += spd/spd.c</span><br><span> </span><br><span> bootblock-$(CONFIG_CHROMEOS) += chromeos.c</span><br><span> verstage-$(CONFIG_CHROMEOS) += chromeos.c</span><br><span>@@ -27,7 +27,10 @@</span><br><span> ramstage-$(CONFIG_EC_GOOGLE_CHROMEEC) += ec.c</span><br><span> </span><br><span> ramstage-y += mainboard.c</span><br><span style="color: hsl(0, 100%, 40%);">-ramstage-y += pei_data.c</span><br><span> ramstage-y += ramstage.c</span><br><span> </span><br><span> smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+subdirs-y += variants/$(VARIANT_DIR)</span><br><span style="color: hsl(120, 100%, 40%);">+CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include</span><br><span style="color: hsl(120, 100%, 40%);">+CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include</span><br><span>\ No newline at end of file</span><br><span>diff --git a/src/mainboard/google/glados/acpi/dptf.asl b/src/mainboard/google/glados/acpi/dptf.asl</span><br><span>index 8e96315..0af7e9b 100644</span><br><span>--- a/src/mainboard/google/glados/acpi/dptf.asl</span><br><span>+++ b/src/mainboard/google/glados/acpi/dptf.asl</span><br><span>@@ -14,77 +14,8 @@</span><br><span>  * GNU General Public License for more details.</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_PASSIVE        80</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_CRITICAL       90</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_ACTIVE_AC0     90</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_ACTIVE_AC1     80</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_ACTIVE_AC2     70</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_ACTIVE_AC3     60</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_CPU_ACTIVE_AC4     50</span><br><span style="color: hsl(120, 100%, 40%);">+/* Include Variant DPTF */</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/acpi/dptf.asl></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR0_SENSOR_ID       1</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR0_SENSOR_NAME  "Ambient"</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR0_PASSIVE    55</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR0_CRITICAL    70</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR1_SENSOR_ID   2</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR1_SENSOR_NAME  "Charger"</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR1_PASSIVE    55</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR1_CRITICAL    70</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR2_SENSOR_ID   3</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR2_SENSOR_NAME  "DRAM"</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR2_PASSIVE       55</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR2_CRITICAL    70</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR3_SENSOR_ID   4</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR3_SENSOR_NAME  "WiFi"</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR3_PASSIVE       55</span><br><span style="color: hsl(0, 100%, 40%);">-#define DPTF_TSR3_CRITICAL    70</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* SKL-Y EC already has a custom charge profile based on temperature. */</span><br><span style="color: hsl(0, 100%, 40%);">-#undef DPTF_ENABLE_CHARGER</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* SKL-Y is Fanless design. */</span><br><span style="color: hsl(0, 100%, 40%);">-#undef DPTF_ENABLE_FAN_CONTROL</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Name (DTRT, Package () {</span><br><span style="color: hsl(0, 100%, 40%);">-        /* CPU Throttle Effect on CPU */</span><br><span style="color: hsl(0, 100%, 40%);">-        Package () { \_SB.PCI0.B0D4, \_SB.PCI0.B0D4, 100, 50, 0, 0, 0, 0 },</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     /* CPU Effect on Temp Sensor 0 */</span><br><span style="color: hsl(0, 100%, 40%);">-       Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR0, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* CPU Effect on Temp Sensor 1 */</span><br><span style="color: hsl(0, 100%, 40%);">-       Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR1, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* CPU Effect on Temp Sensor 2 */</span><br><span style="color: hsl(0, 100%, 40%);">-       Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR2, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* CPU Effect on Temp Sensor 3 */</span><br><span style="color: hsl(0, 100%, 40%);">-       Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR3, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(0, 100%, 40%);">-})</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Name (MPPC, Package ()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   0x2,            /* Revision */</span><br><span style="color: hsl(0, 100%, 40%);">-  Package () {    /* Power Limit 1 */</span><br><span style="color: hsl(0, 100%, 40%);">-             0,      /* PowerLimitIndex, 0 for Power Limit 1 */</span><br><span style="color: hsl(0, 100%, 40%);">-              1600,   /* PowerLimitMinimum */</span><br><span style="color: hsl(0, 100%, 40%);">-         6000,   /* PowerLimitMaximum */</span><br><span style="color: hsl(0, 100%, 40%);">-         1000,   /* TimeWindowMinimum */</span><br><span style="color: hsl(0, 100%, 40%);">-         1000,   /* TimeWindowMaximum */</span><br><span style="color: hsl(0, 100%, 40%);">-         200     /* StepSize */</span><br><span style="color: hsl(0, 100%, 40%);">-  },</span><br><span style="color: hsl(0, 100%, 40%);">-      Package () {    /* Power Limit 2 */</span><br><span style="color: hsl(0, 100%, 40%);">-             1,      /* PowerLimitIndex, 1 for Power Limit 2 */</span><br><span style="color: hsl(0, 100%, 40%);">-              8000,   /* PowerLimitMinimum */</span><br><span style="color: hsl(0, 100%, 40%);">-         8000,   /* PowerLimitMaximum */</span><br><span style="color: hsl(0, 100%, 40%);">-         1000,   /* TimeWindowMinimum */</span><br><span style="color: hsl(0, 100%, 40%);">-         1000,   /* TimeWindowMaximum */</span><br><span style="color: hsl(0, 100%, 40%);">-         1000    /* StepSize */</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-})</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Include DPTF */</span><br><span style="color: hsl(120, 100%, 40%);">+/* Include SoC DPTF */</span><br><span> #include <soc/intel/skylake/acpi/dptf/dptf.asl></span><br><span>diff --git a/src/mainboard/google/glados/acpi/ec.asl b/src/mainboard/google/glados/acpi/ec.asl</span><br><span>index d90d87d..5e7a1ba 100644</span><br><span>--- a/src/mainboard/google/glados/acpi/ec.asl</span><br><span>+++ b/src/mainboard/google/glados/acpi/ec.asl</span><br><span>@@ -15,13 +15,8 @@</span><br><span> </span><br><span> /* mainboard configuration */</span><br><span> #include "../ec.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "../gpio.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Enable EC backed ALS device in ACPI */</span><br><span style="color: hsl(0, 100%, 40%);">-#define EC_ENABLE_ALS_DEVICE</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Enable EC backed Keyboard Backlight in ACPI */</span><br><span style="color: hsl(0, 100%, 40%);">-#define EC_ENABLE_KEYBOARD_BACKLIGHT</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/ec.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> /* Enable EC backed PD MCU device in ACPI */</span><br><span> #define EC_ENABLE_PD_MCU_DEVICE</span><br><span>diff --git a/src/mainboard/google/glados/acpi/mainboard.asl b/src/mainboard/google/glados/acpi/mainboard.asl</span><br><span>index 4d0f3fd..550e8a7 100644</span><br><span>--- a/src/mainboard/google/glados/acpi/mainboard.asl</span><br><span>+++ b/src/mainboard/google/glados/acpi/mainboard.asl</span><br><span>@@ -13,8 +13,6 @@</span><br><span>  * GNU General Public License for more details.</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include "../gpio.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> Scope (\_SB)</span><br><span> {</span><br><span>   Device (PWRB)</span><br><span>@@ -22,3 +20,6 @@</span><br><span>            Name (_HID, EisaId ("PNP0C0C"))</span><br><span>    }</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Variant-specific ACPI, including USB port defs */</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/acpi/mainboard.asl></span><br><span>diff --git a/src/mainboard/google/glados/acpi/superio.asl b/src/mainboard/google/glados/acpi/superio.asl</span><br><span>index 803d2e3..dbfd395 100644</span><br><span>--- a/src/mainboard/google/glados/acpi/superio.asl</span><br><span>+++ b/src/mainboard/google/glados/acpi/superio.asl</span><br><span>@@ -14,8 +14,6 @@</span><br><span>  */</span><br><span> </span><br><span> /* mainboard configuration */</span><br><span style="color: hsl(0, 100%, 40%);">-#include "../ec.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> #define SIO_EC_MEMMAP_ENABLE     // EC Memory Map Resources</span><br><span> #define SIO_EC_HOST_ENABLE       // EC Host Interface Resources</span><br><span> #define SIO_EC_ENABLE_PS2K       // Enable PS/2 Keyboard</span><br><span>diff --git a/src/mainboard/google/glados/bootblock_mainboard.c b/src/mainboard/google/glados/bootblock_mainboard.c</span><br><span>index 627b4e8..dde7e86 100644</span><br><span>--- a/src/mainboard/google/glados/bootblock_mainboard.c</span><br><span>+++ b/src/mainboard/google/glados/bootblock_mainboard.c</span><br><span>@@ -15,7 +15,7 @@</span><br><span> </span><br><span> #include <bootblock_common.h></span><br><span> #include <soc/gpio.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include "gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> static void early_config_gpio(void)</span><br><span> {</span><br><span>diff --git a/src/mainboard/google/glados/chromeos.c b/src/mainboard/google/glados/chromeos.c</span><br><span>index 3cb3d89..9433d7a 100644</span><br><span>--- a/src/mainboard/google/glados/chromeos.c</span><br><span>+++ b/src/mainboard/google/glados/chromeos.c</span><br><span>@@ -14,14 +14,13 @@</span><br><span>  * GNU General Public License for more details.</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <bootmode.h></span><br><span> #include <rules.h></span><br><span> #include <gpio.h></span><br><span> #include <soc/gpio.h></span><br><span> #include <string.h></span><br><span> #include <vendorcode/google/chromeos/chromeos.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include "gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> #if ENV_RAMSTAGE</span><br><span> #include <boot/coreboot_tables.h></span><br><span>diff --git a/src/mainboard/google/glados/mainboard.c b/src/mainboard/google/glados/mainboard.c</span><br><span>index be23f4e..921595e 100644</span><br><span>--- a/src/mainboard/google/glados/mainboard.c</span><br><span>+++ b/src/mainboard/google/glados/mainboard.c</span><br><span>@@ -16,6 +16,7 @@</span><br><span>  */</span><br><span> </span><br><span> #include <arch/acpi.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <baseboard/variant.h></span><br><span> #include <console/console.h></span><br><span> #include <device/device.h></span><br><span> #include <stdlib.h></span><br><span>@@ -47,12 +48,14 @@</span><br><span>                 printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n");</span><br><span> </span><br><span>        /* 4 Channel DMIC array. */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (nhlt_soc_add_dmic_array(nhlt, 4))</span><br><span style="color: hsl(0, 100%, 40%);">-           printk(BIOS_ERR, "Couldn't add 4CH DMIC arrays.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+    if (IS_ENABLED(CONFIG_NHLT_DMIC_4CH))</span><br><span style="color: hsl(120, 100%, 40%);">+         if (nhlt_soc_add_dmic_array(nhlt, 4))</span><br><span style="color: hsl(120, 100%, 40%);">+                 printk(BIOS_ERR, "Couldn't add 4CH DMIC arrays.\n");</span><br><span> </span><br><span>       /* ADI Smart Amps for left and right. */</span><br><span style="color: hsl(0, 100%, 40%);">-        if (nhlt_soc_add_ssm4567(nhlt, AUDIO_LINK_SSP0))</span><br><span style="color: hsl(0, 100%, 40%);">-                printk(BIOS_ERR, "Couldn't add ssm4567.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+    if (IS_ENABLED(CONFIG_NHLT_SSM4567))</span><br><span style="color: hsl(120, 100%, 40%);">+          if (nhlt_soc_add_ssm4567(nhlt, AUDIO_LINK_SSP0))</span><br><span style="color: hsl(120, 100%, 40%);">+                      printk(BIOS_ERR, "Couldn't add ssm4567.\n");</span><br><span> </span><br><span>       /* NAU88l25 Headset codec. */</span><br><span>        if (nhlt_soc_add_nau88l25(nhlt, AUDIO_LINK_SSP1))</span><br><span>diff --git a/src/mainboard/google/glados/ramstage.c b/src/mainboard/google/glados/ramstage.c</span><br><span>index d22e145..27d674d 100644</span><br><span>--- a/src/mainboard/google/glados/ramstage.c</span><br><span>+++ b/src/mainboard/google/glados/ramstage.c</span><br><span>@@ -15,7 +15,7 @@</span><br><span>  */</span><br><span> </span><br><span> #include <soc/ramstage.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include "gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> void mainboard_silicon_init_params(SILICON_INIT_UPD *params)</span><br><span> {</span><br><span>diff --git a/src/mainboard/google/glados/romstage.c b/src/mainboard/google/glados/romstage.c</span><br><span>index 72f15f9..07f0ff0 100644</span><br><span>--- a/src/mainboard/google/glados/romstage.c</span><br><span>+++ b/src/mainboard/google/glados/romstage.c</span><br><span>@@ -17,13 +17,24 @@</span><br><span> </span><br><span> #include <string.h></span><br><span> #include <ec/google/chromeec/ec.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <gpio.h></span><br><span> #include <soc/pei_data.h></span><br><span> #include <soc/pei_wrapper.h></span><br><span> #include <soc/romstage.h></span><br><span> #include "spd/spd.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> void mainboard_romstage_entry(struct romstage_params *params)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Get SPD index */</span><br><span style="color: hsl(120, 100%, 40%);">+   gpio_t spd_gpios[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+                GPIO_MEM_CONFIG_0,</span><br><span style="color: hsl(120, 100%, 40%);">+            GPIO_MEM_CONFIG_1,</span><br><span style="color: hsl(120, 100%, 40%);">+            GPIO_MEM_CONFIG_2,</span><br><span style="color: hsl(120, 100%, 40%);">+            GPIO_MEM_CONFIG_3,</span><br><span style="color: hsl(120, 100%, 40%);">+    };</span><br><span style="color: hsl(120, 100%, 40%);">+    params->pei_data->mem_cfg_id =</span><br><span style="color: hsl(120, 100%, 40%);">+                  gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));</span><br><span>  /* Fill out PEI DATA */</span><br><span>      mainboard_fill_pei_data(params->pei_data);</span><br><span>        mainboard_fill_spd_data(params->pei_data);</span><br><span>diff --git a/src/mainboard/google/glados/smihandler.c b/src/mainboard/google/glados/smihandler.c</span><br><span>index c831983..dd2c448 100644</span><br><span>--- a/src/mainboard/google/glados/smihandler.c</span><br><span>+++ b/src/mainboard/google/glados/smihandler.c</span><br><span>@@ -16,6 +16,7 @@</span><br><span> </span><br><span> #include <arch/acpi.h></span><br><span> #include <arch/io.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <baseboard/variant.h></span><br><span> #include <console/console.h></span><br><span> #include <cpu/x86/smm.h></span><br><span> #include <elog.h></span><br><span>@@ -26,7 +27,7 @@</span><br><span> #include <soc/pm.h></span><br><span> #include <soc/smm.h></span><br><span> #include "ec.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> int mainboard_io_trap_handler(int smif)</span><br><span> {</span><br><span>@@ -54,21 +55,8 @@</span><br><span>           chromeec_smi_process_events();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void mainboard_gpio_smi_sleep(u8 slp_typ)</span><br><span style="color: hsl(120, 100%, 40%);">+__weak void mainboard_gpio_smi_sleep(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        int i;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  /* Power down the rails on any sleep type. */</span><br><span style="color: hsl(0, 100%, 40%);">-   gpio_t active_high_signals[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-                EN_PP3300_KEPLER,</span><br><span style="color: hsl(0, 100%, 40%);">-               EN_PP3300_DX_TOUCH,</span><br><span style="color: hsl(0, 100%, 40%);">-             EN_PP3300_DX_EMMC,</span><br><span style="color: hsl(0, 100%, 40%);">-              EN_PP1800_DX_EMMC,</span><br><span style="color: hsl(0, 100%, 40%);">-              EN_PP3300_DX_CAM,</span><br><span style="color: hsl(0, 100%, 40%);">-       };</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      for (i = 0; i < ARRAY_SIZE(active_high_signals); i++)</span><br><span style="color: hsl(0, 100%, 40%);">-                gpio_set(active_high_signals[i], 0);</span><br><span> }</span><br><span> </span><br><span> void mainboard_smi_sleep(u8 slp_typ)</span><br><span>@@ -77,7 +65,7 @@</span><br><span>            chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,</span><br><span>                                     MAINBOARD_EC_S5_WAKE_EVENTS);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       mainboard_gpio_smi_sleep(slp_typ);</span><br><span style="color: hsl(120, 100%, 40%);">+    mainboard_gpio_smi_sleep();</span><br><span> }</span><br><span> </span><br><span> int mainboard_smi_apmc(u8 apmc)</span><br><span>diff --git a/src/mainboard/google/glados/spd/spd.c b/src/mainboard/google/glados/spd/spd.c</span><br><span>index 251b6de..391b702 100644</span><br><span>--- a/src/mainboard/google/glados/spd/spd.c</span><br><span>+++ b/src/mainboard/google/glados/spd/spd.c</span><br><span>@@ -22,8 +22,7 @@</span><br><span> #include <soc/pei_data.h></span><br><span> #include <soc/romstage.h></span><br><span> #include <string.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include "../gpio.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include <baseboard/variant.h></span><br><span> #include "spd.h"</span><br><span> </span><br><span> static void mainboard_print_spd_info(uint8_t spd[])</span><br><span>@@ -77,6 +76,12 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+__weak int is_dual_channel(const int spd_index)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        /* default to dual channel */</span><br><span style="color: hsl(120, 100%, 40%);">+ return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Copy SPD data for on-board memory */</span><br><span> void mainboard_fill_spd_data(struct pei_data *pei_data)</span><br><span> {</span><br><span>@@ -84,14 +89,7 @@</span><br><span>       size_t spd_file_len;</span><br><span>         int spd_index;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      gpio_t spd_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-          GPIO_MEM_CONFIG_0,</span><br><span style="color: hsl(0, 100%, 40%);">-              GPIO_MEM_CONFIG_1,</span><br><span style="color: hsl(0, 100%, 40%);">-              GPIO_MEM_CONFIG_2,</span><br><span style="color: hsl(0, 100%, 40%);">-              GPIO_MEM_CONFIG_3,</span><br><span style="color: hsl(0, 100%, 40%);">-      };</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      spd_index = gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));</span><br><span style="color: hsl(120, 100%, 40%);">+       spd_index = pei_data->mem_cfg_id;</span><br><span>         printk(BIOS_INFO, "SPD index %d\n", spd_index);</span><br><span> </span><br><span>        /* Load SPD data from CBFS */</span><br><span>@@ -113,7 +111,8 @@</span><br><span>  /* Assume same memory in both channels */</span><br><span>    spd_index *= SPD_LEN;</span><br><span>        memcpy(pei_data->spd_data[0][0], spd_file + spd_index, SPD_LEN);</span><br><span style="color: hsl(0, 100%, 40%);">-     memcpy(pei_data->spd_data[1][0], spd_file + spd_index, SPD_LEN);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (is_dual_channel(spd_index))</span><br><span style="color: hsl(120, 100%, 40%);">+               memcpy(pei_data->spd_data[1][0], spd_file + spd_index, SPD_LEN);</span><br><span> </span><br><span>      /* Make sure a valid SPD was found */</span><br><span>        if (pei_data->spd_data[0][0][0] == 0)</span><br><span>diff --git a/src/mainboard/google/glados/variants/baseboard/include/baseboard/variant.h b/src/mainboard/google/glados/variants/baseboard/include/baseboard/variant.h</span><br><span>new file mode 100644</span><br><span>index 0000000..bbab7fc</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/google/glados/variants/baseboard/include/baseboard/variant.h</span><br><span>@@ -0,0 +1,21 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or</span><br><span style="color: hsl(120, 100%, 40%);">+ * modify it under the terms of the GNU General Public License as</span><br><span style="color: hsl(120, 100%, 40%);">+ * published by the Free Software Foundation; version 2 of</span><br><span style="color: hsl(120, 100%, 40%);">+ * the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef GLADOS_VARIANT_H</span><br><span style="color: hsl(120, 100%, 40%);">+#define GLADOS_VARIANT_H</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int is_dual_channel(const int spd_index);</span><br><span style="color: hsl(120, 100%, 40%);">+void mainboard_gpio_smi_sleep(void);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#endif /* GLADOS_VARIANT_H */</span><br><span>diff --git a/src/mainboard/google/glados/spd/Makefile.inc b/src/mainboard/google/glados/variants/glados/Makefile.inc</span><br><span>similarity index 94%</span><br><span>rename from src/mainboard/google/glados/spd/Makefile.inc</span><br><span>rename to src/mainboard/google/glados/variants/glados/Makefile.inc</span><br><span>index 0d6da9e..a7e33f0 100644</span><br><span>--- a/src/mainboard/google/glados/spd/Makefile.inc</span><br><span>+++ b/src/mainboard/google/glados/variants/glados/Makefile.inc</span><br><span>@@ -14,7 +14,9 @@</span><br><span> ## GNU General Public License for more details.</span><br><span> ##</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-romstage-y += spd.c</span><br><span style="color: hsl(120, 100%, 40%);">+romstage-y += variant.c</span><br><span style="color: hsl(120, 100%, 40%);">+ramstage-y += variant.c</span><br><span style="color: hsl(120, 100%, 40%);">+smm-y += variant.c</span><br><span> </span><br><span> SPD_BIN = $(obj)/spd.bin</span><br><span> </span><br><span>@@ -36,4 +38,4 @@</span><br><span> </span><br><span> cbfs-files-y += spd.bin</span><br><span> spd.bin-file := $(SPD_BIN)</span><br><span style="color: hsl(0, 100%, 40%);">-spd.bin-type := spd</span><br><span style="color: hsl(120, 100%, 40%);">+spd.bin-type := spd</span><br><span>\ No newline at end of file</span><br><span>diff --git a/src/mainboard/google/glados/devicetree.cb b/src/mainboard/google/glados/variants/glados/devicetree.cb</span><br><span>similarity index 100%</span><br><span>rename from src/mainboard/google/glados/devicetree.cb</span><br><span>rename to src/mainboard/google/glados/variants/glados/devicetree.cb</span><br><span>diff --git a/src/mainboard/google/glados/variants/glados/include/variant/acpi/dptf.asl b/src/mainboard/google/glados/variants/glados/include/variant/acpi/dptf.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..85afd8c</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/google/glados/variants/glados/include/variant/acpi/dptf.asl</span><br><span>@@ -0,0 +1,87 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2015 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2015 Intel Corporation</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_PASSIVE        80</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_CRITICAL       90</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_ACTIVE_AC0     90</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_ACTIVE_AC1     80</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_ACTIVE_AC2     70</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_ACTIVE_AC3     60</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_CPU_ACTIVE_AC4     50</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR0_SENSOR_ID  1</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR0_SENSOR_NAME        "Ambient"</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR0_PASSIVE  55</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR0_CRITICAL  70</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR1_SENSOR_ID       2</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR1_SENSOR_NAME        "Charger"</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR1_PASSIVE  55</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR1_CRITICAL  70</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR2_SENSOR_ID       3</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR2_SENSOR_NAME        "DRAM"</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR2_PASSIVE     55</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR2_CRITICAL  70</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR3_SENSOR_ID       4</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR3_SENSOR_NAME        "WiFi"</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR3_PASSIVE     55</span><br><span style="color: hsl(120, 100%, 40%);">+#define DPTF_TSR3_CRITICAL  70</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* SKL-Y EC already has a custom charge profile based on temperature. */</span><br><span style="color: hsl(120, 100%, 40%);">+#undef DPTF_ENABLE_CHARGER</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* SKL-Y is Fanless design. */</span><br><span style="color: hsl(120, 100%, 40%);">+#undef DPTF_ENABLE_FAN_CONTROL</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Name (DTRT, Package () {</span><br><span style="color: hsl(120, 100%, 40%);">+      /* CPU Throttle Effect on CPU */</span><br><span style="color: hsl(120, 100%, 40%);">+      Package () { \_SB.PCI0.B0D4, \_SB.PCI0.B0D4, 100, 50, 0, 0, 0, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* CPU Effect on Temp Sensor 0 */</span><br><span style="color: hsl(120, 100%, 40%);">+     Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR0, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* CPU Effect on Temp Sensor 1 */</span><br><span style="color: hsl(120, 100%, 40%);">+     Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR1, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* CPU Effect on Temp Sensor 2 */</span><br><span style="color: hsl(120, 100%, 40%);">+     Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR2, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* CPU Effect on Temp Sensor 3 */</span><br><span style="color: hsl(120, 100%, 40%);">+     Package () { \_SB.PCI0.B0D4, \_SB.DPTF.TSR3, 100, 600, 0, 0, 0, 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Name (MPPC, Package ()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ 0x2,            /* Revision */</span><br><span style="color: hsl(120, 100%, 40%);">+        Package () {    /* Power Limit 1 */</span><br><span style="color: hsl(120, 100%, 40%);">+           0,      /* PowerLimitIndex, 0 for Power Limit 1 */</span><br><span style="color: hsl(120, 100%, 40%);">+            1600,   /* PowerLimitMinimum */</span><br><span style="color: hsl(120, 100%, 40%);">+               6000,   /* PowerLimitMaximum */</span><br><span style="color: hsl(120, 100%, 40%);">+               1000,   /* TimeWindowMinimum */</span><br><span style="color: hsl(120, 100%, 40%);">+               1000,   /* TimeWindowMaximum */</span><br><span style="color: hsl(120, 100%, 40%);">+               200     /* StepSize */</span><br><span style="color: hsl(120, 100%, 40%);">+        },</span><br><span style="color: hsl(120, 100%, 40%);">+    Package () {    /* Power Limit 2 */</span><br><span style="color: hsl(120, 100%, 40%);">+           1,      /* PowerLimitIndex, 1 for Power Limit 2 */</span><br><span style="color: hsl(120, 100%, 40%);">+            8000,   /* PowerLimitMinimum */</span><br><span style="color: hsl(120, 100%, 40%);">+               8000,   /* PowerLimitMaximum */</span><br><span style="color: hsl(120, 100%, 40%);">+               1000,   /* TimeWindowMinimum */</span><br><span style="color: hsl(120, 100%, 40%);">+               1000,   /* TimeWindowMaximum */</span><br><span style="color: hsl(120, 100%, 40%);">+               1000    /* StepSize */</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+})</span><br><span>diff --git a/src/mainboard/google/glados/variants/glados/include/variant/acpi/mainboard.asl b/src/mainboard/google/glados/variants/glados/include/variant/acpi/mainboard.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..e69de29</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/google/glados/variants/glados/include/variant/acpi/mainboard.asl</span><br><span>diff --git a/src/mainboard/google/glados/variants/glados/include/variant/ec.h b/src/mainboard/google/glados/variants/glados/include/variant/ec.h</span><br><span>new file mode 100644</span><br><span>index 0000000..3c094b5</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/google/glados/variants/glados/include/variant/ec.h</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2015 Google Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Enable EC backed ALS device in ACPI */</span><br><span style="color: hsl(120, 100%, 40%);">+#define EC_ENABLE_ALS_DEVICE</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Enable EC backed Keyboard Backlight in ACPI */</span><br><span style="color: hsl(120, 100%, 40%);">+#define EC_ENABLE_KEYBOARD_BACKLIGHT</span><br><span>diff --git a/src/mainboard/google/glados/gpio.h b/src/mainboard/google/glados/variants/glados/include/variant/gpio.h</span><br><span>similarity index 100%</span><br><span>rename from src/mainboard/google/glados/gpio.h</span><br><span>rename to src/mainboard/google/glados/variants/glados/include/variant/gpio.h</span><br><span>diff --git a/src/mainboard/google/glados/pei_data.c b/src/mainboard/google/glados/variants/glados/variant.c</span><br><span>similarity index 77%</span><br><span>rename from src/mainboard/google/glados/pei_data.c</span><br><span>rename to src/mainboard/google/glados/variants/glados/variant.c</span><br><span>index 0f97fd4..2ce0a90 100644</span><br><span>--- a/src/mainboard/google/glados/pei_data.c</span><br><span>+++ b/src/mainboard/google/glados/variants/glados/variant.c</span><br><span>@@ -14,10 +14,13 @@</span><br><span>  * GNU General Public License for more details.</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <baseboard/variant.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <gpio.h></span><br><span> #include <stdint.h></span><br><span> #include <string.h></span><br><span> #include <soc/pei_data.h></span><br><span> #include <soc/pei_wrapper.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <variant/gpio.h></span><br><span> </span><br><span> void mainboard_fill_pei_data(struct pei_data *pei_data)</span><br><span> {</span><br><span>@@ -45,3 +48,20 @@</span><br><span>      memcpy(pei_data->RcompTarget, RcompTarget,</span><br><span>                 sizeof(RcompTarget));</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void mainboard_gpio_smi_sleep(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ int i;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Power down the rails on any sleep type. */</span><br><span style="color: hsl(120, 100%, 40%);">+ gpio_t active_high_signals[] = {</span><br><span style="color: hsl(120, 100%, 40%);">+              EN_PP3300_KEPLER,</span><br><span style="color: hsl(120, 100%, 40%);">+             EN_PP3300_DX_TOUCH,</span><br><span style="color: hsl(120, 100%, 40%);">+           EN_PP3300_DX_EMMC,</span><br><span style="color: hsl(120, 100%, 40%);">+            EN_PP1800_DX_EMMC,</span><br><span style="color: hsl(120, 100%, 40%);">+            EN_PP3300_DX_CAM,</span><br><span style="color: hsl(120, 100%, 40%);">+     };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  for (i = 0; i < ARRAY_SIZE(active_high_signals); i++)</span><br><span style="color: hsl(120, 100%, 40%);">+              gpio_set(active_high_signals[i], 0);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27411">change 27411</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27411"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I41615979dc11b5a10e32d6b5f477a256735cde53 </div>
<div style="display:none"> Gerrit-Change-Number: 27411 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Matt DeVillier <matt.devillier@gmail.com> </div>