summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2020-07-15 23:19:41 -0700
committerAaron Durbin <adurbin@chromium.org>2020-07-17 05:04:02 +0000
commit28980fdf8526bb5e761d77011bb0ca921f3313ff (patch)
treedcb78a8a487a2239dff826b140d1d407dec05337 /src
parenta469736cca504588dafb6abc50fb7d30e6993acb (diff)
soc/amd/picasso: Use read-modify-write for ACP_I2S_PIN_CONFIG
This change uses read-modify-write to update ACP_I2S_PIN_CONFIG instead of a write operation since the other bits in the register are reserved. Change-Id: Ic64e1907858ec293c5f759e627d19c00d748a30e Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/43503 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r--src/soc/amd/picasso/acp.c2
-rw-r--r--src/soc/amd/picasso/include/soc/acp.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/soc/amd/picasso/acp.c b/src/soc/amd/picasso/acp.c
index b598e646b2..4efef186c9 100644
--- a/src/soc/amd/picasso/acp.c
+++ b/src/soc/amd/picasso/acp.c
@@ -41,7 +41,7 @@ static void init(struct device *dev)
}
bar = (uintptr_t)res->base;
- write32((void *)(bar + ACP_I2S_PIN_CONFIG), cfg->acp_pin_cfg);
+ acp_update32(bar, ACP_I2S_PIN_CONFIG, PIN_CONFIG_MASK, cfg->acp_pin_cfg);
/* Enable ACP_PME_EN and ACP_I2S_WAKE_EN for I2S_WAKE event */
acp_update32(bar, ACP_I2S_WAKE_EN, WAKE_EN_MASK, !!cfg->acp_i2s_wake_enable);
diff --git a/src/soc/amd/picasso/include/soc/acp.h b/src/soc/amd/picasso/include/soc/acp.h
index 36bd6fb68b..545a372100 100644
--- a/src/soc/amd/picasso/include/soc/acp.h
+++ b/src/soc/amd/picasso/include/soc/acp.h
@@ -5,6 +5,7 @@
/* Bus A D0F5 - Audio Processor */
#define ACP_I2S_PIN_CONFIG 0x1400 /* HDA, Soundwire, I2S */
+#define PIN_CONFIG_MASK (7 << 0)
#define ACP_I2S_WAKE_EN 0x1414
#define WAKE_EN_MASK (1 << 0)
#define ACP_PME_EN 0x1418