1*d0fa1179SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2bcd109c0SIan Minett /* 3bcd109c0SIan Minett * HD audio interface patch for Creative CA0132 chip. 4bcd109c0SIan Minett * CA0132 registers defines. 5bcd109c0SIan Minett * 6bcd109c0SIan Minett * Copyright (c) 2011, Creative Technology Ltd. 7bcd109c0SIan Minett */ 8bcd109c0SIan Minett 9bcd109c0SIan Minett #ifndef __CA0132_REGS_H 103c25d041SRasmus Villemoes #define __CA0132_REGS_H 11bcd109c0SIan Minett 12bcd109c0SIan Minett #define DSP_CHIP_OFFSET 0x100000 13bcd109c0SIan Minett #define DSP_DBGCNTL_MODULE_OFFSET 0xE30 14bcd109c0SIan Minett #define DSP_DBGCNTL_INST_OFFSET \ 15bcd109c0SIan Minett (DSP_CHIP_OFFSET + DSP_DBGCNTL_MODULE_OFFSET) 16bcd109c0SIan Minett 17bcd109c0SIan Minett #define DSP_DBGCNTL_EXEC_LOBIT 0x0 18bcd109c0SIan Minett #define DSP_DBGCNTL_EXEC_HIBIT 0x3 19bcd109c0SIan Minett #define DSP_DBGCNTL_EXEC_MASK 0xF 20bcd109c0SIan Minett 21bcd109c0SIan Minett #define DSP_DBGCNTL_SS_LOBIT 0x4 22bcd109c0SIan Minett #define DSP_DBGCNTL_SS_HIBIT 0x7 23bcd109c0SIan Minett #define DSP_DBGCNTL_SS_MASK 0xF0 24bcd109c0SIan Minett 25bcd109c0SIan Minett #define DSP_DBGCNTL_STATE_LOBIT 0xA 26bcd109c0SIan Minett #define DSP_DBGCNTL_STATE_HIBIT 0xD 27bcd109c0SIan Minett #define DSP_DBGCNTL_STATE_MASK 0x3C00 28bcd109c0SIan Minett 29bcd109c0SIan Minett #define XRAM_CHIP_OFFSET 0x0 30bcd109c0SIan Minett #define XRAM_XRAM_CHANNEL_COUNT 0xE000 31bcd109c0SIan Minett #define XRAM_XRAM_MODULE_OFFSET 0x0 32bcd109c0SIan Minett #define XRAM_XRAM_CHAN_INCR 4 33bcd109c0SIan Minett #define XRAM_XRAM_INST_OFFSET(_chan) \ 34bcd109c0SIan Minett (XRAM_CHIP_OFFSET + XRAM_XRAM_MODULE_OFFSET + \ 35bcd109c0SIan Minett (_chan * XRAM_XRAM_CHAN_INCR)) 36bcd109c0SIan Minett 37bcd109c0SIan Minett #define YRAM_CHIP_OFFSET 0x40000 38bcd109c0SIan Minett #define YRAM_YRAM_CHANNEL_COUNT 0x8000 39bcd109c0SIan Minett #define YRAM_YRAM_MODULE_OFFSET 0x0 40bcd109c0SIan Minett #define YRAM_YRAM_CHAN_INCR 4 41bcd109c0SIan Minett #define YRAM_YRAM_INST_OFFSET(_chan) \ 42bcd109c0SIan Minett (YRAM_CHIP_OFFSET + YRAM_YRAM_MODULE_OFFSET + \ 43bcd109c0SIan Minett (_chan * YRAM_YRAM_CHAN_INCR)) 44bcd109c0SIan Minett 45bcd109c0SIan Minett #define UC_CHIP_OFFSET 0x80000 46bcd109c0SIan Minett #define UC_UC_CHANNEL_COUNT 0x10000 47bcd109c0SIan Minett #define UC_UC_MODULE_OFFSET 0x0 48bcd109c0SIan Minett #define UC_UC_CHAN_INCR 4 49bcd109c0SIan Minett #define UC_UC_INST_OFFSET(_chan) \ 50bcd109c0SIan Minett (UC_CHIP_OFFSET + UC_UC_MODULE_OFFSET + \ 51bcd109c0SIan Minett (_chan * UC_UC_CHAN_INCR)) 52bcd109c0SIan Minett 53bcd109c0SIan Minett #define AXRAM_CHIP_OFFSET 0x3C000 54bcd109c0SIan Minett #define AXRAM_AXRAM_CHANNEL_COUNT 0x1000 55bcd109c0SIan Minett #define AXRAM_AXRAM_MODULE_OFFSET 0x0 56bcd109c0SIan Minett #define AXRAM_AXRAM_CHAN_INCR 4 57bcd109c0SIan Minett #define AXRAM_AXRAM_INST_OFFSET(_chan) \ 58bcd109c0SIan Minett (AXRAM_CHIP_OFFSET + AXRAM_AXRAM_MODULE_OFFSET + \ 59bcd109c0SIan Minett (_chan * AXRAM_AXRAM_CHAN_INCR)) 60bcd109c0SIan Minett 61bcd109c0SIan Minett #define AYRAM_CHIP_OFFSET 0x78000 62bcd109c0SIan Minett #define AYRAM_AYRAM_CHANNEL_COUNT 0x1000 63bcd109c0SIan Minett #define AYRAM_AYRAM_MODULE_OFFSET 0x0 64bcd109c0SIan Minett #define AYRAM_AYRAM_CHAN_INCR 4 65bcd109c0SIan Minett #define AYRAM_AYRAM_INST_OFFSET(_chan) \ 66bcd109c0SIan Minett (AYRAM_CHIP_OFFSET + AYRAM_AYRAM_MODULE_OFFSET + \ 67bcd109c0SIan Minett (_chan * AYRAM_AYRAM_CHAN_INCR)) 68bcd109c0SIan Minett 69bcd109c0SIan Minett #define DSPDMAC_CHIP_OFFSET 0x110000 70bcd109c0SIan Minett #define DSPDMAC_DMA_CFG_CHANNEL_COUNT 12 71bcd109c0SIan Minett #define DSPDMAC_DMACFG_MODULE_OFFSET 0xF00 72bcd109c0SIan Minett #define DSPDMAC_DMACFG_CHAN_INCR 0x10 73bcd109c0SIan Minett #define DSPDMAC_DMACFG_INST_OFFSET(_chan) \ 74bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_DMACFG_MODULE_OFFSET + \ 75bcd109c0SIan Minett (_chan * DSPDMAC_DMACFG_CHAN_INCR)) 76bcd109c0SIan Minett 77bcd109c0SIan Minett #define DSPDMAC_DMACFG_DBADR_LOBIT 0x0 78bcd109c0SIan Minett #define DSPDMAC_DMACFG_DBADR_HIBIT 0x10 79bcd109c0SIan Minett #define DSPDMAC_DMACFG_DBADR_MASK 0x1FFFF 80bcd109c0SIan Minett #define DSPDMAC_DMACFG_LP_LOBIT 0x11 81bcd109c0SIan Minett #define DSPDMAC_DMACFG_LP_HIBIT 0x11 82bcd109c0SIan Minett #define DSPDMAC_DMACFG_LP_MASK 0x20000 83bcd109c0SIan Minett 84bcd109c0SIan Minett #define DSPDMAC_DMACFG_AINCR_LOBIT 0x12 85bcd109c0SIan Minett #define DSPDMAC_DMACFG_AINCR_HIBIT 0x12 86bcd109c0SIan Minett #define DSPDMAC_DMACFG_AINCR_MASK 0x40000 87bcd109c0SIan Minett 88bcd109c0SIan Minett #define DSPDMAC_DMACFG_DWR_LOBIT 0x13 89bcd109c0SIan Minett #define DSPDMAC_DMACFG_DWR_HIBIT 0x13 90bcd109c0SIan Minett #define DSPDMAC_DMACFG_DWR_MASK 0x80000 91bcd109c0SIan Minett 92bcd109c0SIan Minett #define DSPDMAC_DMACFG_AJUMP_LOBIT 0x14 93bcd109c0SIan Minett #define DSPDMAC_DMACFG_AJUMP_HIBIT 0x17 94bcd109c0SIan Minett #define DSPDMAC_DMACFG_AJUMP_MASK 0xF00000 95bcd109c0SIan Minett 96bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_LOBIT 0x18 97bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_HIBIT 0x19 98bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_MASK 0x3000000 99bcd109c0SIan Minett 100bcd109c0SIan Minett #define DSPDMAC_DMACFG_LK_LOBIT 0x1A 101bcd109c0SIan Minett #define DSPDMAC_DMACFG_LK_HIBIT 0x1A 102bcd109c0SIan Minett #define DSPDMAC_DMACFG_LK_MASK 0x4000000 103bcd109c0SIan Minett 104bcd109c0SIan Minett #define DSPDMAC_DMACFG_AICS_LOBIT 0x1B 105bcd109c0SIan Minett #define DSPDMAC_DMACFG_AICS_HIBIT 0x1F 106bcd109c0SIan Minett #define DSPDMAC_DMACFG_AICS_MASK 0xF8000000 107bcd109c0SIan Minett 108bcd109c0SIan Minett #define DSPDMAC_DMACFG_LP_SINGLE 0 109bcd109c0SIan Minett #define DSPDMAC_DMACFG_LP_LOOPING 1 110bcd109c0SIan Minett 111bcd109c0SIan Minett #define DSPDMAC_DMACFG_AINCR_XANDY 0 112bcd109c0SIan Minett #define DSPDMAC_DMACFG_AINCR_XORY 1 113bcd109c0SIan Minett 114bcd109c0SIan Minett #define DSPDMAC_DMACFG_DWR_DMA_RD 0 115bcd109c0SIan Minett #define DSPDMAC_DMACFG_DWR_DMA_WR 1 116bcd109c0SIan Minett 117bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_LINEAR 0 118bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_RSV1 1 119bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_WINTLV 2 120bcd109c0SIan Minett #define DSPDMAC_DMACFG_AMODE_GINTLV 3 121bcd109c0SIan Minett 122bcd109c0SIan Minett #define DSPDMAC_DSP_ADR_OFS_CHANNEL_COUNT 12 123bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_MODULE_OFFSET 0xF04 124bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_CHAN_INCR 0x10 125bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_INST_OFFSET(_chan) \ 126bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADROFS_MODULE_OFFSET + \ 127bcd109c0SIan Minett (_chan * DSPDMAC_DSPADROFS_CHAN_INCR)) 128bcd109c0SIan Minett 129bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_COFS_LOBIT 0x0 130bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_COFS_HIBIT 0xF 131bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_COFS_MASK 0xFFFF 132bcd109c0SIan Minett 133bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_BOFS_LOBIT 0x10 134bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_BOFS_HIBIT 0x1F 135bcd109c0SIan Minett #define DSPDMAC_DSPADROFS_BOFS_MASK 0xFFFF0000 136bcd109c0SIan Minett 137bcd109c0SIan Minett #define DSPDMAC_DSP_ADR_WOFS_CHANNEL_COUNT 12 138bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_MODULE_OFFSET 0xF04 139bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_CHAN_INCR 0x10 140bcd109c0SIan Minett 141bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_INST_OFFSET(_chan) \ 142bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADRWOFS_MODULE_OFFSET + \ 143bcd109c0SIan Minett (_chan * DSPDMAC_DSPADRWOFS_CHAN_INCR)) 144bcd109c0SIan Minett 145bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCOFS_LOBIT 0x0 146bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCOFS_HIBIT 0xA 147bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCOFS_MASK 0x7FF 148bcd109c0SIan Minett 149bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCBFR_LOBIT 0xB 150bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCBFR_HIBIT 0xF 151bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WCBFR_MASK 0xF800 152bcd109c0SIan Minett 153bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBOFS_LOBIT 0x10 154bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBOFS_HIBIT 0x1A 155bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBOFS_MASK 0x7FF0000 156bcd109c0SIan Minett 157bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBBFR_LOBIT 0x1B 158bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBBFR_HIBIT 0x1F 159bcd109c0SIan Minett #define DSPDMAC_DSPADRWOFS_WBBFR_MASK 0xF8000000 160bcd109c0SIan Minett 161bcd109c0SIan Minett #define DSPDMAC_DSP_ADR_GOFS_CHANNEL_COUNT 12 162bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_MODULE_OFFSET 0xF04 163bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_CHAN_INCR 0x10 164bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_INST_OFFSET(_chan) \ 165bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_DSPADRGOFS_MODULE_OFFSET + \ 166bcd109c0SIan Minett (_chan * DSPDMAC_DSPADRGOFS_CHAN_INCR)) 167bcd109c0SIan Minett 168bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCOFS_LOBIT 0x0 169bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCOFS_HIBIT 0x9 170bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCOFS_MASK 0x3FF 171bcd109c0SIan Minett 172bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCS_LOBIT 0xA 173bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCS_HIBIT 0xC 174bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCS_MASK 0x1C00 175bcd109c0SIan Minett 176bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCBFR_LOBIT 0xD 177bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCBFR_HIBIT 0xF 178bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GCBFR_MASK 0xE000 179bcd109c0SIan Minett 180bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBOFS_LOBIT 0x10 181bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBOFS_HIBIT 0x19 182bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBOFS_MASK 0x3FF0000 183bcd109c0SIan Minett 184bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBS_LOBIT 0x1A 185bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBS_HIBIT 0x1C 186bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBS_MASK 0x1C000000 187bcd109c0SIan Minett 188bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBBFR_LOBIT 0x1D 189bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBBFR_HIBIT 0x1F 190bcd109c0SIan Minett #define DSPDMAC_DSPADRGOFS_GBBFR_MASK 0xE0000000 191bcd109c0SIan Minett 192bcd109c0SIan Minett #define DSPDMAC_XFR_CNT_CHANNEL_COUNT 12 193bcd109c0SIan Minett #define DSPDMAC_XFRCNT_MODULE_OFFSET 0xF08 194bcd109c0SIan Minett #define DSPDMAC_XFRCNT_CHAN_INCR 0x10 195bcd109c0SIan Minett 196bcd109c0SIan Minett #define DSPDMAC_XFRCNT_INST_OFFSET(_chan) \ 197bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_XFRCNT_MODULE_OFFSET + \ 198bcd109c0SIan Minett (_chan * DSPDMAC_XFRCNT_CHAN_INCR)) 199bcd109c0SIan Minett 200bcd109c0SIan Minett #define DSPDMAC_XFRCNT_CCNT_LOBIT 0x0 201bcd109c0SIan Minett #define DSPDMAC_XFRCNT_CCNT_HIBIT 0xF 202bcd109c0SIan Minett #define DSPDMAC_XFRCNT_CCNT_MASK 0xFFFF 203bcd109c0SIan Minett 204bcd109c0SIan Minett #define DSPDMAC_XFRCNT_BCNT_LOBIT 0x10 205bcd109c0SIan Minett #define DSPDMAC_XFRCNT_BCNT_HIBIT 0x1F 206bcd109c0SIan Minett #define DSPDMAC_XFRCNT_BCNT_MASK 0xFFFF0000 207bcd109c0SIan Minett 208bcd109c0SIan Minett #define DSPDMAC_IRQ_CNT_CHANNEL_COUNT 12 209bcd109c0SIan Minett #define DSPDMAC_IRQCNT_MODULE_OFFSET 0xF0C 210bcd109c0SIan Minett #define DSPDMAC_IRQCNT_CHAN_INCR 0x10 211bcd109c0SIan Minett #define DSPDMAC_IRQCNT_INST_OFFSET(_chan) \ 212bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_IRQCNT_MODULE_OFFSET + \ 213bcd109c0SIan Minett (_chan * DSPDMAC_IRQCNT_CHAN_INCR)) 214bcd109c0SIan Minett 215bcd109c0SIan Minett #define DSPDMAC_IRQCNT_CICNT_LOBIT 0x0 216bcd109c0SIan Minett #define DSPDMAC_IRQCNT_CICNT_HIBIT 0xF 217bcd109c0SIan Minett #define DSPDMAC_IRQCNT_CICNT_MASK 0xFFFF 218bcd109c0SIan Minett 219bcd109c0SIan Minett #define DSPDMAC_IRQCNT_BICNT_LOBIT 0x10 220bcd109c0SIan Minett #define DSPDMAC_IRQCNT_BICNT_HIBIT 0x1F 221bcd109c0SIan Minett #define DSPDMAC_IRQCNT_BICNT_MASK 0xFFFF0000 222bcd109c0SIan Minett 223bcd109c0SIan Minett #define DSPDMAC_AUD_CHSEL_CHANNEL_COUNT 12 224bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_MODULE_OFFSET 0xFC0 225bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_CHAN_INCR 0x4 226bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_INST_OFFSET(_chan) \ 227bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_AUDCHSEL_MODULE_OFFSET + \ 228bcd109c0SIan Minett (_chan * DSPDMAC_AUDCHSEL_CHAN_INCR)) 229bcd109c0SIan Minett 230bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_ACS_LOBIT 0x0 231bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_ACS_HIBIT 0x1F 232bcd109c0SIan Minett #define DSPDMAC_AUDCHSEL_ACS_MASK 0xFFFFFFFF 233bcd109c0SIan Minett 234bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_MODULE_OFFSET 0xFF0 235bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_INST_OFFSET \ 236bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLSTART_MODULE_OFFSET) 237bcd109c0SIan Minett 238bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_EN_LOBIT 0x0 239bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_EN_HIBIT 0xB 240bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_EN_MASK 0xFFF 241bcd109c0SIan Minett 242bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI1_LOBIT 0xC 243bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI1_HIBIT 0xF 244bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI1_MASK 0xF000 245bcd109c0SIan Minett 246bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_DIS_LOBIT 0x10 247bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_DIS_HIBIT 0x1B 248bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_DIS_MASK 0xFFF0000 249bcd109c0SIan Minett 250bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI2_LOBIT 0x1C 251bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI2_HIBIT 0x1F 252bcd109c0SIan Minett #define DSPDMAC_CHNLSTART_VAI2_MASK 0xF0000000 253bcd109c0SIan Minett 254bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_MODULE_OFFSET 0xFF4 255bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_INST_OFFSET \ 256bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLSTATUS_MODULE_OFFSET) 257bcd109c0SIan Minett 258bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_ISC_LOBIT 0x0 259bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_ISC_HIBIT 0xB 260bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_ISC_MASK 0xFFF 261bcd109c0SIan Minett 262bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOO_LOBIT 0xC 263bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOO_HIBIT 0xC 264bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOO_MASK 0x1000 265bcd109c0SIan Minett 266bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOU_LOBIT 0xD 267bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOU_HIBIT 0xD 268bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AOU_MASK 0x2000 269bcd109c0SIan Minett 270bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIO_LOBIT 0xE 271bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIO_HIBIT 0xE 272bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIO_MASK 0x4000 273bcd109c0SIan Minett 274bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIU_LOBIT 0xF 275bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIU_HIBIT 0xF 276bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_AIU_MASK 0x8000 277bcd109c0SIan Minett 278bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_IEN_LOBIT 0x10 279bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_IEN_HIBIT 0x1B 280bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_IEN_MASK 0xFFF0000 281bcd109c0SIan Minett 282bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_VAI0_LOBIT 0x1C 283bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_VAI0_HIBIT 0x1F 284bcd109c0SIan Minett #define DSPDMAC_CHNLSTATUS_VAI0_MASK 0xF0000000 285bcd109c0SIan Minett 286bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_MODULE_OFFSET 0xFF8 287bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_INST_OFFSET \ 288bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_CHNLPROP_MODULE_OFFSET) 289bcd109c0SIan Minett 290bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_DCON_LOBIT 0x0 291bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_DCON_HIBIT 0xB 292bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_DCON_MASK 0xFFF 293bcd109c0SIan Minett 294bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_FFS_LOBIT 0xC 295bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_FFS_HIBIT 0xC 296bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_FFS_MASK 0x1000 297bcd109c0SIan Minett 298bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_NAJ_LOBIT 0xD 299bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_NAJ_HIBIT 0xD 300bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_NAJ_MASK 0x2000 301bcd109c0SIan Minett 302bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_ENH_LOBIT 0xE 303bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_ENH_HIBIT 0xE 304bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_ENH_MASK 0x4000 305bcd109c0SIan Minett 306bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_MSPCE_LOBIT 0x10 307bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_MSPCE_HIBIT 0x1B 308bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_MSPCE_MASK 0xFFF0000 309bcd109c0SIan Minett 310bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_AC_LOBIT 0x1C 311bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_AC_HIBIT 0x1F 312bcd109c0SIan Minett #define DSPDMAC_CHNLPROP_AC_MASK 0xF0000000 313bcd109c0SIan Minett 314bcd109c0SIan Minett #define DSPDMAC_ACTIVE_MODULE_OFFSET 0xFFC 315bcd109c0SIan Minett #define DSPDMAC_ACTIVE_INST_OFFSET \ 316bcd109c0SIan Minett (DSPDMAC_CHIP_OFFSET + DSPDMAC_ACTIVE_MODULE_OFFSET) 317bcd109c0SIan Minett 318bcd109c0SIan Minett #define DSPDMAC_ACTIVE_AAR_LOBIT 0x0 319bcd109c0SIan Minett #define DSPDMAC_ACTIVE_AAR_HIBIT 0xB 320bcd109c0SIan Minett #define DSPDMAC_ACTIVE_AAR_MASK 0xFFF 321bcd109c0SIan Minett 322bcd109c0SIan Minett #define DSPDMAC_ACTIVE_WFR_LOBIT 0xC 323bcd109c0SIan Minett #define DSPDMAC_ACTIVE_WFR_HIBIT 0x17 324bcd109c0SIan Minett #define DSPDMAC_ACTIVE_WFR_MASK 0xFFF000 325bcd109c0SIan Minett 326bcd109c0SIan Minett #define DSP_AUX_MEM_BASE 0xE000 3274a8b89f9STakashi Iwai #define INVALID_CHIP_ADDRESS (~0U) 328bcd109c0SIan Minett 329bcd109c0SIan Minett #define X_SIZE (XRAM_XRAM_CHANNEL_COUNT * XRAM_XRAM_CHAN_INCR) 330bcd109c0SIan Minett #define Y_SIZE (YRAM_YRAM_CHANNEL_COUNT * YRAM_YRAM_CHAN_INCR) 331bcd109c0SIan Minett #define AX_SIZE (AXRAM_AXRAM_CHANNEL_COUNT * AXRAM_AXRAM_CHAN_INCR) 332bcd109c0SIan Minett #define AY_SIZE (AYRAM_AYRAM_CHANNEL_COUNT * AYRAM_AYRAM_CHAN_INCR) 333bcd109c0SIan Minett #define UC_SIZE (UC_UC_CHANNEL_COUNT * UC_UC_CHAN_INCR) 334bcd109c0SIan Minett 335bcd109c0SIan Minett #define XEXT_SIZE (X_SIZE + AX_SIZE) 336bcd109c0SIan Minett #define YEXT_SIZE (Y_SIZE + AY_SIZE) 337bcd109c0SIan Minett 338bcd109c0SIan Minett #define U64K 0x10000UL 339bcd109c0SIan Minett 340bcd109c0SIan Minett #define X_END (XRAM_CHIP_OFFSET + X_SIZE) 341bcd109c0SIan Minett #define X_EXT (XRAM_CHIP_OFFSET + XEXT_SIZE) 342bcd109c0SIan Minett #define AX_END (XRAM_CHIP_OFFSET + U64K*4) 343bcd109c0SIan Minett 344bcd109c0SIan Minett #define Y_END (YRAM_CHIP_OFFSET + Y_SIZE) 345bcd109c0SIan Minett #define Y_EXT (YRAM_CHIP_OFFSET + YEXT_SIZE) 346bcd109c0SIan Minett #define AY_END (YRAM_CHIP_OFFSET + U64K*4) 347bcd109c0SIan Minett 348bcd109c0SIan Minett #define UC_END (UC_CHIP_OFFSET + UC_SIZE) 349bcd109c0SIan Minett 350bcd109c0SIan Minett #define X_RANGE_MAIN(a, s) \ 351bcd109c0SIan Minett (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < X_END)) 352bcd109c0SIan Minett #define X_RANGE_AUX(a, s) \ 353bcd109c0SIan Minett (((a) >= X_END) && ((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < AX_END)) 354bcd109c0SIan Minett #define X_RANGE_EXT(a, s) \ 355bcd109c0SIan Minett (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < X_EXT)) 356bcd109c0SIan Minett #define X_RANGE_ALL(a, s) \ 357bcd109c0SIan Minett (((a)+((s)-1)*XRAM_XRAM_CHAN_INCR < AX_END)) 358bcd109c0SIan Minett 359bcd109c0SIan Minett #define Y_RANGE_MAIN(a, s) \ 360bcd109c0SIan Minett (((a) >= YRAM_CHIP_OFFSET) && \ 361bcd109c0SIan Minett ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < Y_END)) 362bcd109c0SIan Minett #define Y_RANGE_AUX(a, s) \ 363bcd109c0SIan Minett (((a) >= Y_END) && \ 364bcd109c0SIan Minett ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < AY_END)) 365bcd109c0SIan Minett #define Y_RANGE_EXT(a, s) \ 366bcd109c0SIan Minett (((a) >= YRAM_CHIP_OFFSET) && \ 367bcd109c0SIan Minett ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < Y_EXT)) 368bcd109c0SIan Minett #define Y_RANGE_ALL(a, s) \ 369bcd109c0SIan Minett (((a) >= YRAM_CHIP_OFFSET) && \ 370bcd109c0SIan Minett ((a)+((s)-1)*YRAM_YRAM_CHAN_INCR < AY_END)) 371bcd109c0SIan Minett 372bcd109c0SIan Minett #define UC_RANGE(a, s) \ 373bcd109c0SIan Minett (((a) >= UC_CHIP_OFFSET) && \ 374bcd109c0SIan Minett ((a)+((s)-1)*UC_UC_CHAN_INCR < UC_END)) 375bcd109c0SIan Minett 376bcd109c0SIan Minett #define X_OFF(a) \ 377bcd109c0SIan Minett (((a) - XRAM_CHIP_OFFSET) / XRAM_XRAM_CHAN_INCR) 378bcd109c0SIan Minett #define AX_OFF(a) \ 379bcd109c0SIan Minett (((a) % (AXRAM_AXRAM_CHANNEL_COUNT * \ 380bcd109c0SIan Minett AXRAM_AXRAM_CHAN_INCR)) / AXRAM_AXRAM_CHAN_INCR) 381bcd109c0SIan Minett 382bcd109c0SIan Minett #define Y_OFF(a) \ 383bcd109c0SIan Minett (((a) - YRAM_CHIP_OFFSET) / YRAM_YRAM_CHAN_INCR) 384bcd109c0SIan Minett #define AY_OFF(a) \ 385bcd109c0SIan Minett (((a) % (AYRAM_AYRAM_CHANNEL_COUNT * \ 386bcd109c0SIan Minett AYRAM_AYRAM_CHAN_INCR)) / AYRAM_AYRAM_CHAN_INCR) 387bcd109c0SIan Minett 388bcd109c0SIan Minett #define UC_OFF(a) (((a) - UC_CHIP_OFFSET) / UC_UC_CHAN_INCR) 389bcd109c0SIan Minett 390bcd109c0SIan Minett #define X_EXT_MAIN_SIZE(a) (XRAM_XRAM_CHANNEL_COUNT - X_OFF(a)) 391bcd109c0SIan Minett #define X_EXT_AUX_SIZE(a, s) ((s) - X_EXT_MAIN_SIZE(a)) 392bcd109c0SIan Minett 393bcd109c0SIan Minett #define Y_EXT_MAIN_SIZE(a) (YRAM_YRAM_CHANNEL_COUNT - Y_OFF(a)) 394bcd109c0SIan Minett #define Y_EXT_AUX_SIZE(a, s) ((s) - Y_EXT_MAIN_SIZE(a)) 395bcd109c0SIan Minett 396bcd109c0SIan Minett #endif 397