diff options
-rw-r--r-- | src/mainboard/google/kahlee/variants/careena/Makefile.inc | 1 | ||||
-rw-r--r-- | src/mainboard/google/kahlee/variants/careena/variant.c | 24 |
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); } |