Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/platform/amd/acp_7_x/include/platform/platform_misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
#define ACP_SRBM_CLIENT_RDDATA 0x1241BF4
#define ACP_SRBM_CYCLE_STS 0x1241BF8
#define ACP_SRBM_CLIENT_CONFIG 0x1241BFC
#define ACP_DMA_CH_LINKED_LIST_EN 0x124012C
#define ACP_DMA_IO_STUT_TIMER_LIMIT 0x1240130
#define ACP_DMA_CH_PWA_CTRL 0x1240138

/* Registers from SYSTEMPLL2P0_N3_BUS_CSR_SNAP_6 block ACP_7X */
#define ACP_7X_SYSTEMPLL2P0_N3_BUS_CSR_SNAP_6_REFCLK_BRDS 0x6D204
Expand Down
10 changes: 10 additions & 0 deletions src/platform/amd/acp_7_x/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,16 @@ int platform_init(struct sof *sof)
/*CONFIG_SYSTICK_PERIOD hardcoded as 200000*/
sa_init(sof, 200000);
clock_set_freq(CLK_CPU(cpu_get_id()), CLK_MAX_CPU_HZ);

/*
* Clear DMA linked-list IO stutter and PWA defaults before
* channel setup. ACP_DMA_CH_LINKED_LIST_EN DMAChIOStutEn
* (bits 24:15) defaults to all 1s.
*/
io_reg_write(PU_REGISTER_BASE + ACP_DMA_CH_LINKED_LIST_EN, 0);
io_reg_write(PU_REGISTER_BASE + ACP_DMA_IO_STUT_TIMER_LIMIT, 0);
io_reg_write(PU_REGISTER_BASE + ACP_DMA_CH_PWA_CTRL, 0);

/* init DMA */
ret = dmac_init(sof);
if (ret < 0) {
Expand Down
Loading