diff options
author | Karthikeyan Ramasubramanian <kramasub@google.com> | 2020-04-20 11:37:52 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2020-05-01 06:15:26 +0000 |
commit | 8d09cf61860e743b35a9158163654c8d2bd3c189 (patch) | |
tree | cb1b278ffa89d1b0b198e9fe2cbeebf78cc465ea /src/mainboard/google/dedede/variants/baseboard | |
parent | f60a8f02c5d6eed7249a4e60c1d6df373d047eb0 (diff) | |
download | coreboot-8d09cf61860e743b35a9158163654c8d2bd3c189.tar.xz |
mb/google/dedede: Remove pad termination for RAM_STRAP_4
The stuffed resistor straps are weaker compared to the internal pull-up.
This can cause the GPIO to read '1' always. Remove the internal pull-up.
Also read the GPIO only on the boards where the board version is
populated.
BUG=b:154301008
TEST=Build and boot the mainboard.
Change-Id: Ib640211b9f50dfb0174a570eda1625bacbebb855
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40531
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/mainboard/google/dedede/variants/baseboard')
3 files changed, 14 insertions, 2 deletions
diff --git a/src/mainboard/google/dedede/variants/baseboard/gpio.c b/src/mainboard/google/dedede/variants/baseboard/gpio.c index b09d6c1abb..6adb35ba9d 100644 --- a/src/mainboard/google/dedede/variants/baseboard/gpio.c +++ b/src/mainboard/google/dedede/variants/baseboard/gpio.c @@ -348,7 +348,7 @@ static const struct pad_config gpio_table[] = { /* S0 : RAM_STRAP_4 */ - PAD_CFG_GPI(GPP_S0, UP_5K, DEEP), + PAD_CFG_GPI(GPP_S0, NONE, DEEP), /* S1 : RSVD_STRAP */ PAD_NC(GPP_S1, NONE), /* S2 : DMIC1_CLK */ @@ -418,7 +418,7 @@ static const struct pad_config early_gpio_table[] = { PAD_CFG_GPO(GPP_H19, 0, DEEP), /* S0 : RAM_STRAP_4 */ - PAD_CFG_GPI(GPP_S0, UP_5K, DEEP), + PAD_CFG_GPI(GPP_S0, NONE, DEEP), }; const struct pad_config *__weak variant_gpio_table(size_t *num) diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h index 8fd5119bd4..48c1419617 100644 --- a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h @@ -33,4 +33,11 @@ const struct mb_cfg *variant_memcfg_config(void); /* Return memory SKU for the variant */ int variant_memory_sku(void); +/** + * Get data whether memory channel is half-populated or not + * + * @return false on boards where memory channel is half-populated, true otherwise. + */ +bool variant_mem_is_half_populated(void); + #endif /*__BASEBOARD_VARIANTS_H__ */ diff --git a/src/mainboard/google/dedede/variants/baseboard/memory.c b/src/mainboard/google/dedede/variants/baseboard/memory.c index 08c3bde29f..120cb4e43e 100644 --- a/src/mainboard/google/dedede/variants/baseboard/memory.c +++ b/src/mainboard/google/dedede/variants/baseboard/memory.c @@ -70,3 +70,8 @@ int __weak variant_memory_sku(void) return gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios)); } + +bool __weak variant_mem_is_half_populated(void) +{ + return !gpio_get(GPIO_MEM_CH_SEL); +} |