From e577168ae3163768bc76d23e4e121a57b436abd6 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 11 Jul 2018 15:51:27 -0600 Subject: [PATCH] mainboard/google/Kahlee: Select low-power mode for WiFi Put the PCIe clock pins in power-saving mode for the WiFi module to save power. Note: This currently does not appear to have any effect on grunt. BUG=b:110041917 BRANCH=none TEST=boot without this patch: $ iotools mem_read32 0xfed80e00 0x0046f3ff With this patch: $ iotools mem_read32 0xfed80e00 0x0046f3f1 Change-Id: I389815bc36b8610a30b0cbb9d73262ad392e0181 Signed-off-by: Simon Glass Reviewed-on: https://review.coreboot.org/27465 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Martin Roth Reviewed-by: Paul Menzel --- src/mainboard/google/kahlee/mainboard.c | 6 ++++++ src/soc/amd/stoneyridge/include/soc/southbridge.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/mainboard/google/kahlee/mainboard.c b/src/mainboard/google/kahlee/mainboard.c index 2efcb20bbc..2540bcd47d 100644 --- a/src/mainboard/google/kahlee/mainboard.c +++ b/src/mainboard/google/kahlee/mainboard.c @@ -150,6 +150,12 @@ static void mainboard_init(void *chip_info) GPP_CLK2_CLOCK_REQ_MAP_MASK, GPP_CLK2_CLOCK_REQ_MAP_CLK_REQ2 << GPP_CLK2_CLOCK_REQ_MAP_SHIFT); + + /* Same for the WiFi */ + clrsetbits_le32((uint32_t *)(MISC_MMIO_BASE + GPP_CLK_CNTRL), + GPP_CLK0_CLOCK_REQ_MAP_MASK, + GPP_CLK0_CLOCK_REQ_MAP_CLK_REQ0 << + GPP_CLK0_CLOCK_REQ_MAP_SHIFT); } /************************************************* diff --git a/src/soc/amd/stoneyridge/include/soc/southbridge.h b/src/soc/amd/stoneyridge/include/soc/southbridge.h index 3127f5cd47..2e953091f8 100644 --- a/src/soc/amd/stoneyridge/include/soc/southbridge.h +++ b/src/soc/amd/stoneyridge/include/soc/southbridge.h @@ -366,6 +366,10 @@ #define GPP_CLK2_CLOCK_REQ_MAP_MASK (0xf << GPP_CLK2_CLOCK_REQ_MAP_SHIFT) #define GPP_CLK2_CLOCK_REQ_MAP_CLK_REQ2 3 +#define GPP_CLK0_CLOCK_REQ_MAP_SHIFT 0 +#define GPP_CLK0_CLOCK_REQ_MAP_MASK (0xf << GPP_CLK0_CLOCK_REQ_MAP_SHIFT) +#define GPP_CLK0_CLOCK_REQ_MAP_CLK_REQ0 1 + struct stoneyridge_aoac { int enable; int status;