18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * HD audio interface patch for Creative CA0132 chip. 48c2ecf20Sopenharmony_ci * CA0132 registers defines. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (c) 2011, Creative Technology Ltd. 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef __CA0132_REGS_H 108c2ecf20Sopenharmony_ci#define __CA0132_REGS_H 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#define DSP_CHIP_OFFSET 0x100000 138c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_MODULE_OFFSET 0xE30 148c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_INST_OFFSET \ 158c2ecf20Sopenharmony_ci (DSP_CHIP_OFFSET + DSP_DBGCNTL_MODULE_OFFSET) 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_EXEC_LOBIT 0x0 188c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_EXEC_HIBIT 0x3 198c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_EXEC_MASK 0xF 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_SS_LOBIT 0x4 228c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_SS_HIBIT 0x7 238c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_SS_MASK 0xF0 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_STATE_LOBIT 0xA 268c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_STATE_HIBIT 0xD 278c2ecf20Sopenharmony_ci#define DSP_DBGCNTL_STATE_MASK 0x3C00 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#define XRAM_CHIP_OFFSET 0x0 308c2ecf20Sopenharmony_ci#define XRAM_XRAM_CHANNEL_COUNT 0xE000 318c2ecf20Sopenharmony_ci#define XRAM_XRAM_MODULE_OFFSET 0x0 328c2ecf20Sopenharmony_ci#define XRAM_XRAM_CHAN_INCR 4 338c2ecf20Sopenharmony_ci#define XRAM_XRAM_INST_OFFSET(_chan) \ 348c2ecf20Sopenharmony_ci (XRAM_CHIP_OFFSET + XRAM_XRAM_MODULE_OFFSET + \ 358c2ecf20Sopenharmony_ci (_chan * XRAM_XRAM_CHAN_INCR)) 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define YRAM_CHIP_OFFSET 0x40000 388c2ecf20Sopenharmony_ci#define YRAM_YRAM_CHANNEL_COUNT 0x8000 398c2ecf20Sopenharmony_ci#define YRAM_YRAM_MODULE_OFFSET 0x0 408c2ecf20Sopenharmony_ci#define YRAM_YRAM_CHAN_INCR 4 418c2ecf20Sopenharmony_ci#define YRAM_YRAM_INST_OFFSET(_chan) \ 428c2ecf20Sopenharmony_ci (YRAM_CHIP_OFFSET + YRAM_YRAM_MODULE_OFFSET + \ 438c2ecf20Sopenharmony_ci (_chan * YRAM_YRAM_CHAN_INCR)) 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci#define UC_CHIP_OFFSET 0x80000 468c2ecf20Sopenharmony_ci#define UC_UC_CHANNEL_COUNT 0x10000 478c2ecf20Sopenharmony_ci#define UC_UC_MODULE_OFFSET 0x0 488c2ecf20Sopenharmony_ci#define UC_UC_CHAN_INCR 4 498c2ecf20Sopenharmony_ci#define UC_UC_INST_OFFSET(_chan) \ 508c2ecf20Sopenharmony_ci (UC_CHIP_OFFSET + UC_UC_MODULE_OFFSET + \ 518c2ecf20Sopenharmony_ci (_chan * UC_UC_CHAN_INCR)) 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci#define AXRAM_CHIP_OFFSET 0x3C000 548c2ecf20Sopenharmony_ci#define AXRAM_AXRAM_CHANNEL_COUNT 0x1000 558c2ecf20Sopenharmony_ci#define AXRAM_AXRAM_MODULE_OFFSET 0x0 568c2ecf20Sopenharmony_ci#define AXRAM_AXRAM_CHAN_INCR 4 578c2ecf20Sopenharmony_ci#define AXRAM_AXRAM_INST_OFFSET(_chan) \ 588c2ecf20Sopenharmony_ci (AXRAM_CHIP_OFFSET + AXRAM_AXRAM_MODULE_OFFSET + \ 598c2ecf20Sopenharmony_ci (_chan * AXRAM_AXRAM_CHAN_INCR)) 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci#define AYRAM_CHIP_OFFSET 0x78000 628c2ecf20Sopenharmony_ci#define AYRAM_AYRAM_CHANNEL_COUNT 0x1000 638c2ecf20Sopenharmony_ci#define AYRAM_AYRAM_MODULE_OFFSET 0x0 648c2ecf20Sopenharmony_ci#define AYRAM_AYRAM_CHAN_INCR 4 658c2ecf20Sopenharmony_ci#define AYRAM_AYRAM_INST_OFFSET(_chan) \ 668c2ecf20Sopenharmony_ci (AYRAM_CHIP_OFFSET + AYRAM_AYRAM_MODULE_OFFSET + \ 678c2ecf20Sopenharmony_ci (_chan * AYRAM_AYRAM_CHAN_INCR)) 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci#define DSPDMAC_CHIP_OFFSET 0x110000 708c2ecf20Sopenharmony_ci#define DSPDMAC_DMA_CFG_CHANNEL_COUNT 12 718c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_MODULE_OFFSET 0xF00 728c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_CHAN_INCR 0x10 738c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_INST_OFFSET(_chan) \ 748c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_DMACFG_MODULE_OFFSET + \ 758c2ecf20Sopenharmony_ci (_chan * DSPDMAC_DMACFG_CHAN_INCR)) 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DBADR_LOBIT 0x0 788c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DBADR_HIBIT 0x10 798c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DBADR_MASK 0x1FFFF 808c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LP_LOBIT 0x11 818c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LP_HIBIT 0x11 828c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LP_MASK 0x20000 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AINCR_LOBIT 0x12 858c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AINCR_HIBIT 0x12 868c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AINCR_MASK 0x40000 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DWR_LOBIT 0x13 898c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DWR_HIBIT 0x13 908c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DWR_MASK 0x80000 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AJUMP_LOBIT 0x14 938c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AJUMP_HIBIT 0x17 948c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AJUMP_MASK 0xF00000 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_LOBIT 0x18 978c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_HIBIT 0x19 988c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_MASK 0x3000000 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LK_LOBIT 0x1A 1018c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LK_HIBIT 0x1A 1028c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LK_MASK 0x4000000 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AICS_LOBIT 0x1B 1058c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AICS_HIBIT 0x1F 1068c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AICS_MASK 0xF8000000 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LP_SINGLE 0 1098c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_LP_LOOPING 1 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AINCR_XANDY 0 1128c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AINCR_XORY 1 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DWR_DMA_RD 0 1158c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_DWR_DMA_WR 1 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_LINEAR 0 1188c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_RSV1 1 1198c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_WINTLV 2 1208c2ecf20Sopenharmony_ci#define DSPDMAC_DMACFG_AMODE_GINTLV 3 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci#define DSPDMAC_DSP_ADR_OFS_CHANNEL_COUNT 12 1238c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_MODULE_OFFSET 0xF04 1248c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_CHAN_INCR 0x10 1258c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_INST_OFFSET(_chan) \ 1268c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADROFS_MODULE_OFFSET + \ 1278c2ecf20Sopenharmony_ci (_chan * DSPDMAC_DSPADROFS_CHAN_INCR)) 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_COFS_LOBIT 0x0 1308c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_COFS_HIBIT 0xF 1318c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_COFS_MASK 0xFFFF 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_BOFS_LOBIT 0x10 1348c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_BOFS_HIBIT 0x1F 1358c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADROFS_BOFS_MASK 0xFFFF0000 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci#define DSPDMAC_DSP_ADR_WOFS_CHANNEL_COUNT 12 1388c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_MODULE_OFFSET 0xF04 1398c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_CHAN_INCR 0x10 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_INST_OFFSET(_chan) \ 1428c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADRWOFS_MODULE_OFFSET + \ 1438c2ecf20Sopenharmony_ci (_chan * DSPDMAC_DSPADRWOFS_CHAN_INCR)) 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCOFS_LOBIT 0x0 1468c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCOFS_HIBIT 0xA 1478c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCOFS_MASK 0x7FF 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCBFR_LOBIT 0xB 1508c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCBFR_HIBIT 0xF 1518c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WCBFR_MASK 0xF800 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBOFS_LOBIT 0x10 1548c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBOFS_HIBIT 0x1A 1558c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBOFS_MASK 0x7FF0000 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBBFR_LOBIT 0x1B 1588c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBBFR_HIBIT 0x1F 1598c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRWOFS_WBBFR_MASK 0xF8000000 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci#define DSPDMAC_DSP_ADR_GOFS_CHANNEL_COUNT 12 1628c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_MODULE_OFFSET 0xF04 1638c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_CHAN_INCR 0x10 1648c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_INST_OFFSET(_chan) \ 1658c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADRGOFS_MODULE_OFFSET + \ 1668c2ecf20Sopenharmony_ci (_chan * DSPDMAC_DSPADRGOFS_CHAN_INCR)) 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCOFS_LOBIT 0x0 1698c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCOFS_HIBIT 0x9 1708c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCOFS_MASK 0x3FF 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCS_LOBIT 0xA 1738c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCS_HIBIT 0xC 1748c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCS_MASK 0x1C00 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCBFR_LOBIT 0xD 1778c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCBFR_HIBIT 0xF 1788c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GCBFR_MASK 0xE000 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBOFS_LOBIT 0x10 1818c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBOFS_HIBIT 0x19 1828c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBOFS_MASK 0x3FF0000 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBS_LOBIT 0x1A 1858c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBS_HIBIT 0x1C 1868c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBS_MASK 0x1C000000 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBBFR_LOBIT 0x1D 1898c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBBFR_HIBIT 0x1F 1908c2ecf20Sopenharmony_ci#define DSPDMAC_DSPADRGOFS_GBBFR_MASK 0xE0000000 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci#define DSPDMAC_XFR_CNT_CHANNEL_COUNT 12 1938c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_MODULE_OFFSET 0xF08 1948c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_CHAN_INCR 0x10 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_INST_OFFSET(_chan) \ 1978c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_XFRCNT_MODULE_OFFSET + \ 1988c2ecf20Sopenharmony_ci (_chan * DSPDMAC_XFRCNT_CHAN_INCR)) 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_CCNT_LOBIT 0x0 2018c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_CCNT_HIBIT 0xF 2028c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_CCNT_MASK 0xFFFF 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_BCNT_LOBIT 0x10 2058c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_BCNT_HIBIT 0x1F 2068c2ecf20Sopenharmony_ci#define DSPDMAC_XFRCNT_BCNT_MASK 0xFFFF0000 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci#define DSPDMAC_IRQ_CNT_CHANNEL_COUNT 12 2098c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_MODULE_OFFSET 0xF0C 2108c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_CHAN_INCR 0x10 2118c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_INST_OFFSET(_chan) \ 2128c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_IRQCNT_MODULE_OFFSET + \ 2138c2ecf20Sopenharmony_ci (_chan * DSPDMAC_IRQCNT_CHAN_INCR)) 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_CICNT_LOBIT 0x0 2168c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_CICNT_HIBIT 0xF 2178c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_CICNT_MASK 0xFFFF 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_BICNT_LOBIT 0x10 2208c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_BICNT_HIBIT 0x1F 2218c2ecf20Sopenharmony_ci#define DSPDMAC_IRQCNT_BICNT_MASK 0xFFFF0000 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci#define DSPDMAC_AUD_CHSEL_CHANNEL_COUNT 12 2248c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_MODULE_OFFSET 0xFC0 2258c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_CHAN_INCR 0x4 2268c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_INST_OFFSET(_chan) \ 2278c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_AUDCHSEL_MODULE_OFFSET + \ 2288c2ecf20Sopenharmony_ci (_chan * DSPDMAC_AUDCHSEL_CHAN_INCR)) 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_ACS_LOBIT 0x0 2318c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_ACS_HIBIT 0x1F 2328c2ecf20Sopenharmony_ci#define DSPDMAC_AUDCHSEL_ACS_MASK 0xFFFFFFFF 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_MODULE_OFFSET 0xFF0 2358c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_INST_OFFSET \ 2368c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLSTART_MODULE_OFFSET) 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_EN_LOBIT 0x0 2398c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_EN_HIBIT 0xB 2408c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_EN_MASK 0xFFF 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI1_LOBIT 0xC 2438c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI1_HIBIT 0xF 2448c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI1_MASK 0xF000 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_DIS_LOBIT 0x10 2478c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_DIS_HIBIT 0x1B 2488c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_DIS_MASK 0xFFF0000 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI2_LOBIT 0x1C 2518c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI2_HIBIT 0x1F 2528c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTART_VAI2_MASK 0xF0000000 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_MODULE_OFFSET 0xFF4 2558c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_INST_OFFSET \ 2568c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLSTATUS_MODULE_OFFSET) 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_ISC_LOBIT 0x0 2598c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_ISC_HIBIT 0xB 2608c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_ISC_MASK 0xFFF 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOO_LOBIT 0xC 2638c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOO_HIBIT 0xC 2648c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOO_MASK 0x1000 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOU_LOBIT 0xD 2678c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOU_HIBIT 0xD 2688c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AOU_MASK 0x2000 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIO_LOBIT 0xE 2718c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIO_HIBIT 0xE 2728c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIO_MASK 0x4000 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIU_LOBIT 0xF 2758c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIU_HIBIT 0xF 2768c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_AIU_MASK 0x8000 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_IEN_LOBIT 0x10 2798c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_IEN_HIBIT 0x1B 2808c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_IEN_MASK 0xFFF0000 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_VAI0_LOBIT 0x1C 2838c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_VAI0_HIBIT 0x1F 2848c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLSTATUS_VAI0_MASK 0xF0000000 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_MODULE_OFFSET 0xFF8 2878c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_INST_OFFSET \ 2888c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLPROP_MODULE_OFFSET) 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_DCON_LOBIT 0x0 2918c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_DCON_HIBIT 0xB 2928c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_DCON_MASK 0xFFF 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_FFS_LOBIT 0xC 2958c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_FFS_HIBIT 0xC 2968c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_FFS_MASK 0x1000 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_NAJ_LOBIT 0xD 2998c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_NAJ_HIBIT 0xD 3008c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_NAJ_MASK 0x2000 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_ENH_LOBIT 0xE 3038c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_ENH_HIBIT 0xE 3048c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_ENH_MASK 0x4000 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_MSPCE_LOBIT 0x10 3078c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_MSPCE_HIBIT 0x1B 3088c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_MSPCE_MASK 0xFFF0000 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_AC_LOBIT 0x1C 3118c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_AC_HIBIT 0x1F 3128c2ecf20Sopenharmony_ci#define DSPDMAC_CHNLPROP_AC_MASK 0xF0000000 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_MODULE_OFFSET 0xFFC 3158c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_INST_OFFSET \ 3168c2ecf20Sopenharmony_ci (DSPDMAC_CHIP_OFFSET + DSPDMAC_ACTIVE_MODULE_OFFSET) 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_AAR_LOBIT 0x0 3198c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_AAR_HIBIT 0xB 3208c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_AAR_MASK 0xFFF 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_WFR_LOBIT 0xC 3238c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_WFR_HIBIT 0x17 3248c2ecf20Sopenharmony_ci#define DSPDMAC_ACTIVE_WFR_MASK 0xFFF000 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_ci#define DSP_AUX_MEM_BASE 0xE000 3278c2ecf20Sopenharmony_ci#define INVALID_CHIP_ADDRESS (~0U) 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ci#define X_SIZE (XRAM_XRAM_CHANNEL_COUNT * XRAM_XRAM_CHAN_INCR) 3308c2ecf20Sopenharmony_ci#define Y_SIZE (YRAM_YRAM_CHANNEL_COUNT * YRAM_YRAM_CHAN_INCR) 3318c2ecf20Sopenharmony_ci#define AX_SIZE (AXRAM_AXRAM_CHANNEL_COUNT * AXRAM_AXRAM_CHAN_INCR) 3328c2ecf20Sopenharmony_ci#define AY_SIZE (AYRAM_AYRAM_CHANNEL_COUNT * AYRAM_AYRAM_CHAN_INCR) 3338c2ecf20Sopenharmony_ci#define UC_SIZE (UC_UC_CHANNEL_COUNT * UC_UC_CHAN_INCR) 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci#define XEXT_SIZE (X_SIZE + AX_SIZE) 3368c2ecf20Sopenharmony_ci#define YEXT_SIZE (Y_SIZE + AY_SIZE) 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci#define U64K 0x10000UL 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci#define X_END (XRAM_CHIP_OFFSET + X_SIZE) 3418c2ecf20Sopenharmony_ci#define X_EXT (XRAM_CHIP_OFFSET + XEXT_SIZE) 3428c2ecf20Sopenharmony_ci#define AX_END (XRAM_CHIP_OFFSET + U64K*4) 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_ci#define Y_END (YRAM_CHIP_OFFSET + Y_SIZE) 3458c2ecf20Sopenharmony_ci#define Y_EXT (YRAM_CHIP_OFFSET + YEXT_SIZE) 3468c2ecf20Sopenharmony_ci#define AY_END (YRAM_CHIP_OFFSET + U64K*4) 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ci#define UC_END (UC_CHIP_OFFSET + UC_SIZE) 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci#define X_RANGE_MAIN(a, s) \ 3518c2ecf20Sopenharmony_ci (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < X_END)) 3528c2ecf20Sopenharmony_ci#define X_RANGE_AUX(a, s) \ 3538c2ecf20Sopenharmony_ci (((a) >= X_END) && ((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < AX_END)) 3548c2ecf20Sopenharmony_ci#define X_RANGE_EXT(a, s) \ 3558c2ecf20Sopenharmony_ci (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < X_EXT)) 3568c2ecf20Sopenharmony_ci#define X_RANGE_ALL(a, s) \ 3578c2ecf20Sopenharmony_ci (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < AX_END)) 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ci#define Y_RANGE_MAIN(a, s) \ 3608c2ecf20Sopenharmony_ci (((a) >= YRAM_CHIP_OFFSET) && \ 3618c2ecf20Sopenharmony_ci ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < Y_END)) 3628c2ecf20Sopenharmony_ci#define Y_RANGE_AUX(a, s) \ 3638c2ecf20Sopenharmony_ci (((a) >= Y_END) && \ 3648c2ecf20Sopenharmony_ci ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < AY_END)) 3658c2ecf20Sopenharmony_ci#define Y_RANGE_EXT(a, s) \ 3668c2ecf20Sopenharmony_ci (((a) >= YRAM_CHIP_OFFSET) && \ 3678c2ecf20Sopenharmony_ci ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < Y_EXT)) 3688c2ecf20Sopenharmony_ci#define Y_RANGE_ALL(a, s) \ 3698c2ecf20Sopenharmony_ci (((a) >= YRAM_CHIP_OFFSET) && \ 3708c2ecf20Sopenharmony_ci ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < AY_END)) 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ci#define UC_RANGE(a, s) \ 3738c2ecf20Sopenharmony_ci (((a) >= UC_CHIP_OFFSET) && \ 3748c2ecf20Sopenharmony_ci ((a)+((s)-1)*UC_UC_CHAN_INCR < UC_END)) 3758c2ecf20Sopenharmony_ci 3768c2ecf20Sopenharmony_ci#define X_OFF(a) \ 3778c2ecf20Sopenharmony_ci (((a) - XRAM_CHIP_OFFSET) / XRAM_XRAM_CHAN_INCR) 3788c2ecf20Sopenharmony_ci#define AX_OFF(a) \ 3798c2ecf20Sopenharmony_ci (((a) % (AXRAM_AXRAM_CHANNEL_COUNT * \ 3808c2ecf20Sopenharmony_ci AXRAM_AXRAM_CHAN_INCR)) / AXRAM_AXRAM_CHAN_INCR) 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ci#define Y_OFF(a) \ 3838c2ecf20Sopenharmony_ci (((a) - YRAM_CHIP_OFFSET) / YRAM_YRAM_CHAN_INCR) 3848c2ecf20Sopenharmony_ci#define AY_OFF(a) \ 3858c2ecf20Sopenharmony_ci (((a) % (AYRAM_AYRAM_CHANNEL_COUNT * \ 3868c2ecf20Sopenharmony_ci AYRAM_AYRAM_CHAN_INCR)) / AYRAM_AYRAM_CHAN_INCR) 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_ci#define UC_OFF(a) (((a) - UC_CHIP_OFFSET) / UC_UC_CHAN_INCR) 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci#define X_EXT_MAIN_SIZE(a) (XRAM_XRAM_CHANNEL_COUNT - X_OFF(a)) 3918c2ecf20Sopenharmony_ci#define X_EXT_AUX_SIZE(a, s) ((s) - X_EXT_MAIN_SIZE(a)) 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ci#define Y_EXT_MAIN_SIZE(a) (YRAM_YRAM_CHANNEL_COUNT - Y_OFF(a)) 3948c2ecf20Sopenharmony_ci#define Y_EXT_AUX_SIZE(a, s) ((s) - Y_EXT_MAIN_SIZE(a)) 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ci#endif 397