summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/kahlee/variants/careena/Makefile.inc1
-rw-r--r--src/mainboard/google/kahlee/variants/careena/variant.c24
2 files changed, 25 insertions, 0 deletions
diff --git a/src/mainboard/google/kahlee/variants/careena/Makefile.inc b/src/mainboard/google/kahlee/variants/careena/Makefile.inc
index dcd7d302a4..60da7f361b 100644
--- a/src/mainboard/google/kahlee/variants/careena/Makefile.inc
+++ b/src/mainboard/google/kahlee/variants/careena/Makefile.inc
@@ -6,6 +6,7 @@
subdirs-y += ./spd
+bootblock-y += variant.c
romstage-y += variant.c
ramstage-y += ../baseboard/mainboard.c
diff --git a/src/mainboard/google/kahlee/variants/careena/variant.c b/src/mainboard/google/kahlee/variants/careena/variant.c
index e0bd5d170c..e5a05acca1 100644
--- a/src/mainboard/google/kahlee/variants/careena/variant.c
+++ b/src/mainboard/google/kahlee/variants/careena/variant.c
@@ -4,10 +4,24 @@
#include <ec/google/chromeec/ec.h>
#include <baseboard/variants.h>
#include <variant/sku.h>
+#include <gpio.h>
+#include <variant/gpio.h>
+
+static const struct soc_amd_gpio variant_gpio_wlan_rst_early_reset[] = {
+ /* GPIO_70 - WLAN_PE_RST_L */
+ PAD_GPO(GPIO_70, LOW),
+};
+
+const struct soc_amd_gpio *variant_wlan_rst_early_gpio_table(size_t *size)
+{
+ *size = ARRAY_SIZE(variant_gpio_wlan_rst_early_reset);
+ return variant_gpio_wlan_rst_early_reset;
+}
void variant_romstage_entry(int s3_resume)
{
uint32_t sku = google_chromeec_get_sku_id();
+ uint32_t bid;
if (!s3_resume) {
/* Based on SKU, turn on keyboard backlight */
@@ -23,4 +37,14 @@ void variant_romstage_entry(int s3_resume)
break;
}
}
+
+ google_chromeec_get_board_version(&bid);
+
+ if (bid == 7)
+ /*
+ * Config WLAN RST - GPIO70 PU: release RST
+ * From RTK RTL8822CE spec, WLAN RST needs to be active
+ * at least 50 ms since WLAN power on
+ */
+ gpio_set(GPIO_70, 1);
}