summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/google/octopus/variants/dood/overridetree.cb1
-rw-r--r--src/mainboard/google/octopus/variants/dood/variant.c19
2 files changed, 20 insertions, 0 deletions
diff --git a/src/mainboard/google/octopus/variants/dood/overridetree.cb b/src/mainboard/google/octopus/variants/dood/overridetree.cb
index 6df9f5395e..e1f12cf08f 100644
--- a/src/mainboard/google/octopus/variants/dood/overridetree.cb
+++ b/src/mainboard/google/octopus/variants/dood/overridetree.cb
@@ -149,4 +149,5 @@ chip soc/intel/apollolake
# Disable compliance mode
register "DisableComplianceMode" = "1"
+ register "disable_xhci_lfps_pm" = "0"
end
diff --git a/src/mainboard/google/octopus/variants/dood/variant.c b/src/mainboard/google/octopus/variants/dood/variant.c
index e728fe3a08..ab049a87c1 100644
--- a/src/mainboard/google/octopus/variants/dood/variant.c
+++ b/src/mainboard/google/octopus/variants/dood/variant.c
@@ -8,6 +8,7 @@
#include <delay.h>
#include <gpio.h>
#include <ec/google/chromeec/ec.h>
+#include <soc/intel/apollolake/chip.h>
enum {
SKU_1_LTE = 1, /* Wifi + LTE */
@@ -61,3 +62,21 @@ void variant_smi_sleep(u8 slp_typ)
return;
}
}
+
+void variant_update_devtree(struct device *dev)
+{
+ struct soc_intel_apollolake_config *cfg = NULL;
+
+ cfg = (struct soc_intel_apollolake_config *)dev->chip_info;
+
+ if (cfg != NULL && cfg->disable_xhci_lfps_pm) {
+ switch (google_chromeec_get_board_sku()) {
+ case SKU_1_LTE:
+ case SKU_3_LTE_2CAM:
+ cfg->disable_xhci_lfps_pm = 1;
+ return;
+ default:
+ return;
+ }
+ }
+}