Hello Raul Rangel, Akshu Agrawal,
I'd like you to do a code review. Please visit
https://review.coreboot.org/c/coreboot/+/43495
to review the following change.
Change subject: soc/amd/picasso: Enable ACP_PME_EN and ACP_I2S_WAKE_EN ......................................................................
soc/amd/picasso: Enable ACP_PME_EN and ACP_I2S_WAKE_EN
ACP_PME_EN and ACP_I2S_WAKE_EN are to be set in order to get I2S_Wake event on headset jack plug/unplug.
BUG=b:146317284,b:161328042 TEST=Boot and check on HDT the register value.
Signed-off-by: Akshu Agrawal akshu.agrawal@amd.com Change-Id: I522d7497940f499fbc3181d866f2b44e979bba7a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+... Reviewed-by: Raul E Rangel rrangel@chromium.org Signed-off-by: Furquan Shaikh furquan@google.com --- M src/soc/amd/picasso/acp.c M src/soc/amd/picasso/include/soc/southbridge.h 2 files changed, 9 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/95/43495/1
diff --git a/src/soc/amd/picasso/acp.c b/src/soc/amd/picasso/acp.c index 3272acf..63f5c63 100644 --- a/src/soc/amd/picasso/acp.c +++ b/src/soc/amd/picasso/acp.c @@ -33,6 +33,10 @@ bar = (uintptr_t)res->base; write32((void *)(bar + ACP_I2S_PIN_CONFIG), cfg->acp_pin_cfg);
+ /* Enable ACP_PME_EN and ACP_I2S_WAKE_EN for I2S_WAKE event*/ + write32((void *)(bar + ACP_I2S_WAKE_EN), 1); + write32((void *)(bar + ACP_PME_EN), 1); + if (cfg->acp_pin_cfg == I2S_PINS_I2S_TDM) sb_clk_output_48Mhz(); /* Internal connection to I2S */ } diff --git a/src/soc/amd/picasso/include/soc/southbridge.h b/src/soc/amd/picasso/include/soc/southbridge.h index e9f7e2e..1242882 100644 --- a/src/soc/amd/picasso/include/soc/southbridge.h +++ b/src/soc/amd/picasso/include/soc/southbridge.h @@ -252,6 +252,11 @@ /* IO 0xf0 NCP Error */ #define NCP_WARM_BOOT BIT(7) /* Write-once */
+/* ACP registers */ +#define ACP_I2S_PIN_CONFIG 0x1400 +#define ACP_I2S_WAKE_EN 0x1414 +#define ACP_PME_EN 0x1418 + typedef struct aoac_devs { unsigned int :7; unsigned int ic2e:1; /* 7: I2C2 */