summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin Chiu <kevin.chiu@quanta.corp-partner.google.com>2020-05-01 20:59:28 +0800
committerPatrick Georgi <pgeorgi@google.com>2020-05-02 17:07:16 +0000
commit8c4ad5b4a56769327c3da80c57091f23c24016d7 (patch)
treede45c88b1f9503c8fddddbd68566fc020b6ff312 /src
parent9d821fa1d12ccdb8e7816cab14ef5abdc8143f7a (diff)
downloadcoreboot-8c4ad5b4a56769327c3da80c57091f23c24016d7.tar.xz
mainboard/google/kahlee: Add hook for early wlan rst gpio init
Base on the grunt board schematic, gpio70 is an alternative way for wlan rst. Add hook for variants to override default state. BUG=b:154357210,b:154848243 BRANCH=master TEST=emerge-grunt coreboot Signed-off-by: Kevin Chiu <Kevin.Chiu@quantatw.com> Change-Id: Ic3f1c016357dd5090e6adedf96e7593abff29a0c Reviewed-on: https://review.coreboot.org/c/coreboot/+/40944 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/kahlee/bootblock/bootblock.c3
-rw-r--r--src/mainboard/google/kahlee/variants/baseboard/gpio.c15
-rw-r--r--src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h1
3 files changed, 16 insertions, 3 deletions
diff --git a/src/mainboard/google/kahlee/bootblock/bootblock.c b/src/mainboard/google/kahlee/bootblock/bootblock.c
index 613b35b41e..338edfd62c 100644
--- a/src/mainboard/google/kahlee/bootblock/bootblock.c
+++ b/src/mainboard/google/kahlee/bootblock/bootblock.c
@@ -17,6 +17,9 @@ void bootblock_mainboard_early_init(void)
/* Enable the EC as soon as we have visibility */
mainboard_ec_init();
+ gpios = variant_wlan_rst_early_gpio_table(&num_gpios);
+ program_gpios(gpios, num_gpios);
+
gpios = variant_early_gpio_table(&num_gpios);
program_gpios(gpios, num_gpios);
}
diff --git a/src/mainboard/google/kahlee/variants/baseboard/gpio.c b/src/mainboard/google/kahlee/variants/baseboard/gpio.c
index 4fb60b1fcf..fe0744a62a 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/gpio.c
+++ b/src/mainboard/google/kahlee/variants/baseboard/gpio.c
@@ -42,9 +42,6 @@ static const struct soc_amd_gpio gpio_set_stage_reset[] = {
/* GPIO_40 - EMMC_BRIDGE_RST */
PAD_GPO(GPIO_40, LOW),
- /* GPIO_70 - WLAN_PE_RST_L */
- PAD_GPO(GPIO_70, HIGH),
-
/* GPIO_74 - LPC_CLK0_EC_R */
PAD_NF(GPIO_74, LPCCLK0, PULL_DOWN),
@@ -77,6 +74,11 @@ static const struct soc_amd_gpio gpio_set_stage_reset[] = {
PAD_GPI(GPIO_142, PULL_NONE),
};
+static const struct soc_amd_gpio gpio_wlan_rst_early_reset[] = {
+ /* GPIO_70 - WLAN_PE_RST_L */
+ PAD_GPO(GPIO_70, HIGH),
+};
+
static const struct soc_amd_gpio gpio_set_stage_rom[] = {
/* GPIO_133 - APU_EDP_BKLTEN_L (backlight - Active LOW) */
PAD_GPO(GPIO_133, HIGH),
@@ -248,6 +250,13 @@ struct soc_amd_gpio *variant_early_gpio_table(size_t *size)
}
const __weak
+struct soc_amd_gpio *variant_wlan_rst_early_gpio_table(size_t *size)
+{
+ *size = ARRAY_SIZE(gpio_wlan_rst_early_reset);
+ return gpio_wlan_rst_early_reset;
+}
+
+const __weak
struct soc_amd_gpio *variant_romstage_gpio_table(size_t *size)
{
*size = ARRAY_SIZE(gpio_set_stage_rom);
diff --git a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
index 02d413f6a6..8b789929f8 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
@@ -16,6 +16,7 @@ int variant_mainboard_read_spd(uint8_t spdAddress, char *buf, size_t len);
int variant_get_xhci_oc_map(uint16_t *usb_oc_map);
int variant_get_ehci_oc_map(uint16_t *usb_oc_map);
const struct soc_amd_gpio *variant_early_gpio_table(size_t *size);
+const struct soc_amd_gpio *variant_wlan_rst_early_gpio_table(size_t *size);
const struct soc_amd_gpio *variant_romstage_gpio_table(size_t *size);
const struct soc_amd_gpio *variant_gpio_table(size_t *size);
void variant_romstage_entry(int s3_resume);