Blame view
include/sound/emu8000_reg.h
9.54 KB
1a59d1b8e treewide: Replace... |
1 |
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
1da177e4c Linux-2.6.12-rc2 |
2 3 4 5 6 7 8 9 |
#ifndef __SOUND_EMU8000_REG_H #define __SOUND_EMU8000_REG_H /* * Register operations for the EMU8000 * * Copyright (C) 1999 Steve Ratcliffe * * Based on awe_wave.c by Takashi Iwai |
1da177e4c Linux-2.6.12-rc2 |
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
*/ /* * Data port addresses relative to the EMU base. */ #define EMU8000_DATA0(e) ((e)->port1) #define EMU8000_DATA1(e) ((e)->port2) #define EMU8000_DATA2(e) ((e)->port2+2) #define EMU8000_DATA3(e) ((e)->port3) #define EMU8000_PTR(e) ((e)->port3+2) /* * Make a command from a register and channel. */ #define EMU8000_CMD(reg, chan) ((reg)<<5 | (chan)) /* * Commands to read and write the EMU8000 registers. * These macros should be used for all register accesses. */ #define EMU8000_CPF_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan))) #define EMU8000_PTRX_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan))) #define EMU8000_CVCF_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan))) #define EMU8000_VTFT_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan))) #define EMU8000_PSST_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan))) #define EMU8000_CSL_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan))) #define EMU8000_CCCA_READ(emu, chan) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan))) #define EMU8000_HWCF4_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 9)) #define EMU8000_HWCF5_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 10)) #define EMU8000_HWCF6_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 13)) #define EMU8000_SMALR_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 20)) #define EMU8000_SMARR_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 21)) #define EMU8000_SMALW_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 22)) #define EMU8000_SMARW_READ(emu) \ snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 23)) #define EMU8000_SMLD_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 26)) #define EMU8000_SMRD_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 26)) #define EMU8000_WC_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 27)) #define EMU8000_HWCF1_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 29)) #define EMU8000_HWCF2_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 30)) #define EMU8000_HWCF3_READ(emu) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 31)) #define EMU8000_INIT1_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan))) #define EMU8000_INIT2_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan))) #define EMU8000_INIT3_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan))) #define EMU8000_INIT4_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan))) #define EMU8000_ENVVOL_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan))) #define EMU8000_DCYSUSV_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan))) #define EMU8000_ENVVAL_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan))) #define EMU8000_DCYSUS_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan))) #define EMU8000_ATKHLDV_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan))) #define EMU8000_LFO1VAL_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan))) #define EMU8000_ATKHLD_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan))) #define EMU8000_LFO2VAL_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan))) #define EMU8000_IP_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan))) #define EMU8000_IFATN_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan))) #define EMU8000_PEFE_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan))) #define EMU8000_FMMOD_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan))) #define EMU8000_TREMFRQ_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan))) #define EMU8000_FM2FRQ2_READ(emu, chan) \ snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan))) #define EMU8000_CPF_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan)), (val)) #define EMU8000_PTRX_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan)), (val)) #define EMU8000_CVCF_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan)), (val)) #define EMU8000_VTFT_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan)), (val)) #define EMU8000_PSST_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan)), (val)) #define EMU8000_CSL_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan)), (val)) #define EMU8000_CCCA_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan)), (val)) #define EMU8000_HWCF4_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 9), (val)) #define EMU8000_HWCF5_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 10), (val)) #define EMU8000_HWCF6_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 13), (val)) /* this register is not documented */ #define EMU8000_HWCF7_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 14), (val)) #define EMU8000_SMALR_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 20), (val)) #define EMU8000_SMARR_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 21), (val)) #define EMU8000_SMALW_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 22), (val)) #define EMU8000_SMARW_WRITE(emu, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 23), (val)) #define EMU8000_SMLD_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 26), (val)) #define EMU8000_SMRD_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 26), (val)) #define EMU8000_WC_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 27), (val)) #define EMU8000_HWCF1_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 29), (val)) #define EMU8000_HWCF2_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 30), (val)) #define EMU8000_HWCF3_WRITE(emu, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 31), (val)) #define EMU8000_INIT1_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan)), (val)) #define EMU8000_INIT2_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan)), (val)) #define EMU8000_INIT3_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan)), (val)) #define EMU8000_INIT4_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan)), (val)) #define EMU8000_ENVVOL_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan)), (val)) #define EMU8000_DCYSUSV_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan)), (val)) #define EMU8000_ENVVAL_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan)), (val)) #define EMU8000_DCYSUS_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan)), (val)) #define EMU8000_ATKHLDV_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan)), (val)) #define EMU8000_LFO1VAL_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan)), (val)) #define EMU8000_ATKHLD_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan)), (val)) #define EMU8000_LFO2VAL_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan)), (val)) #define EMU8000_IP_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan)), (val)) #define EMU8000_IFATN_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan)), (val)) #define EMU8000_PEFE_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan)), (val)) #define EMU8000_FMMOD_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan)), (val)) #define EMU8000_TREMFRQ_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan)), (val)) #define EMU8000_FM2FRQ2_WRITE(emu, chan, val) \ snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan)), (val)) #define EMU8000_0080_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(4, (chan)), (val)) #define EMU8000_00A0_WRITE(emu, chan, val) \ snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(5, (chan)), (val)) #endif /* __SOUND_EMU8000_REG_H */ |