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>
This commit is contained in:
Furquan Shaikh 2020-07-15 23:19:41 -07:00 committed by Aaron Durbin
parent a469736cca
commit 28980fdf85
2 changed files with 2 additions and 1 deletions

View File

@ -41,7 +41,7 @@ static void init(struct device *dev)
} }
bar = (uintptr_t)res->base; 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 */ /* 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); acp_update32(bar, ACP_I2S_WAKE_EN, WAKE_EN_MASK, !!cfg->acp_i2s_wake_enable);

View File

@ -5,6 +5,7 @@
/* Bus A D0F5 - Audio Processor */ /* Bus A D0F5 - Audio Processor */
#define ACP_I2S_PIN_CONFIG 0x1400 /* HDA, Soundwire, I2S */ #define ACP_I2S_PIN_CONFIG 0x1400 /* HDA, Soundwire, I2S */
#define PIN_CONFIG_MASK (7 << 0)
#define ACP_I2S_WAKE_EN 0x1414 #define ACP_I2S_WAKE_EN 0x1414
#define WAKE_EN_MASK (1 << 0) #define WAKE_EN_MASK (1 << 0)
#define ACP_PME_EN 0x1418 #define ACP_PME_EN 0x1418