Pyalpha tools for performance audio demo in PRSDK.
[processor-sdk/performance-audio-tools.git] / alpha / bm2_a.h
1 /******************************************************************************
2  * Copyright (c) 2017, Texas Instruments Incorporated - http://www.ti.com
3  *   All rights reserved.
4  *
5  *   Redistribution and use in source and binary forms, with or without
6  *   modification, are permitted provided that the following conditions are met:
7  *       * Redistributions of source code must retain the above copyright
8  *         notice, this list of conditions and the following disclaimer.
9  *       * Redistributions in binary form must reproduce the above copyright
10  *         notice, this list of conditions and the following disclaimer in the
11  *         documentation and/or other materials provided with the distribution.
12  *       * Neither the name of Texas Instruments Incorporated nor the
13  *         names of its contributors may be used to endorse or promote products
14  *         derived from this software without specific prior written permission.
15  *
16  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  *   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  *   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  *   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20  *   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  *   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  *   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  *   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  *   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26  *   THE POSSIBILITY OF SUCH DAMAGE.
27  *****************************************************************************/
29 #ifndef _BM2_A
30 #define _BM2_A
32 #include <acpbeta.h>
34 #define  readBMMode             0xc200+STD_BETA_BM,0x0400
35 #define writeBMModeDisable      0xca00+STD_BETA_BM,0x0400
36 #define writeBMModeLPF2ndOrder  0xca00+STD_BETA_BM,0x0401
37 #define writeBMModeLPF4thOrder  0xca00+STD_BETA_BM,0x0402
38 #define writeBMModeLPFAuto      0xca00+STD_BETA_BM,0x0403
39 /* Old BMMode command:*/
40 #define writeBMModeEnable       writeBMModeLPF4thOrder
42 #define  readBMOCAuto               0xc200+STD_BETA_BM,0x0500
43 #define writeBMOCAutoDisable        0xca00+STD_BETA_BM,0x0500
44 #define writeBMOCAutoProLogic       0xca00+STD_BETA_BM,0x0501
45 #define writeBMOCAutoCorrelation    0xca00+STD_BETA_BM,0x0502
46 #define writeBMOCAutoN(NN)          0xca00+STD_BETA_BM,0x0500+((NN)&0xff)
48 #define  readBMInactionReason              0xc200+STD_BETA_BM,0x0600
49 #define wroteBMInactionReasonNone          0xca00+STD_BETA_BM,0x0600
50 #define wroteBMInactionReasonModeDisabled  0xca00+STD_BETA_BM,0x0601
51 #define wroteBMInactionReasonBypassEnabled 0xca00+STD_BETA_BM,0x0602
52 #define wroteBMInactionReasonActiveFailed  0xca00+STD_BETA_BM,0x0603
53 #define wroteBMInactionReasonSetupFailed   0xca00+STD_BETA_BM,0x0604
54 #define wroteBMInactionReasonStreamUnknown 0xca00+STD_BETA_BM,0x0605
55 #define wroteBMInactionReasonStreamNone    0xca00+STD_BETA_BM,0x0606
56 #define wroteBMInactionReasonNoSubw        0xca00+STD_BETA_BM,0x0607
57 #define wroteBMInactionReasonSubwCount     0xca00+STD_BETA_BM,0x0608
58 #define wroteBMInactionReasonOCNONone      0xca00+STD_BETA_BM,0x0609
59 #define wroteBMInactionReasonBLKSIZE       0xca00+STD_BETA_BM,0x060a
60 #define wroteBMInactionReasonResetFailed   0xca00+STD_BETA_BM,0x060b
62 #define  readBMOCSelect 0xc400+STD_BETA_BM,0x0008
64 #define  readBMOCSelectChannelsLowFreq 0xc200+STD_BETA_BM,0x0800
65 #define writeBMOCSelectChannelsLowFreqMain 0xca00+STD_BETA_BM,0x0802
66 #define writeBMOCSelectChannelsLowFreqCntr 0xca00+STD_BETA_BM,0x0804
67 #define writeBMOCSelectChannelsLowFreqSurr 0xca00+STD_BETA_BM,0x0808
68 #define writeBMOCSelectChannelsLowFreqBack 0xca00+STD_BETA_BM,0x0810
69 #define writeBMOCSelectChannelsLowFreqWide 0xca00+STD_BETA_BM,0x0820
70 #define writeBMOCSelectChannelsLowFreqHigh 0xca00+STD_BETA_BM,0x0840
71 #define writeBMOCSelectChannelsLowFreqHead writeBMOCSelectChannelsLowFreqHigh
72 #define writeBMOCSelectChannelsLowFreqN(NN) \
73  0xca00+STD_BETA_BM,0x0800+((NN)&0xff)
75 #define  readBMOCSelectAncillary 0xc200+STD_BETA_BM,0x0900
76 #define writeBMOCSelectAncillaryDgtlLBNoneStd 0xca00+STD_BETA_BM,0x0981
77 #define writeBMOCSelectAncillaryDgtlLBNoneAlt 0xca00+STD_BETA_BM,0x0983
78 #define writeBMOCSelectAncillaryDgtlLBFrntStd 0xca00+STD_BETA_BM,0x0995
79 #define writeBMOCSelectAncillaryDgtlLBFrntAlt 0xca00+STD_BETA_BM,0x0997
80 #define writeBMOCSelectAncillaryDgtlLBRearStd 0xca00+STD_BETA_BM,0x0999
81 #define writeBMOCSelectAncillaryDgtlLBRearAlt 0xca00+STD_BETA_BM,0x099b
82 #define writeBMOCSelectAncillaryDgtlLBBothStd 0xca00+STD_BETA_BM,0x099d
83 #define writeBMOCSelectAncillaryDgtlLBBothAlt 0xca00+STD_BETA_BM,0x099f
84 #define writeBMOCSelectAncillaryAnlgLBNoneSubwStd 0xca00+STD_BETA_BM,0x0900
85 #define writeBMOCSelectAncillaryAnlgLBNoneSubwFil 0xca00+STD_BETA_BM,0x0901
86 #define writeBMOCSelectAncillaryAnlgLBFrntSubwStd 0xca00+STD_BETA_BM,0x0914
87 #define writeBMOCSelectAncillaryAnlgLBFrntSubwFil 0xca00+STD_BETA_BM,0x0915
88 #define writeBMOCSelectAncillaryAnlgLBRearSubwStd 0xca00+STD_BETA_BM,0x0918
89 #define writeBMOCSelectAncillaryAnlgLBRearSubwFil 0xca00+STD_BETA_BM,0x0919
90 #define writeBMOCSelectAncillaryAnlgLBBothSubwStd 0xca00+STD_BETA_BM,0x091c
91 #define writeBMOCSelectAncillaryAnlgLBBothSubwFil 0xca00+STD_BETA_BM,0x091d
92 /* Following line is obselete, but in use:*/
93 #define writeBMOCSelectAncillaryN(NN) 0xca00+STD_BETA_BM,0x0900+((NN)&0xff)
95 #define  readBMOCSelectAuto 0xc200+STD_BETA_BM,0x0a00
96 #define writeBMOCSelectAutoDisable 0xca00+STD_BETA_BM,0x0a00
97 #define writeBMOCSelectAutoProLogic 0xca00+STD_BETA_BM,0x0a01
98 #define writeBMOCSelectAutoCorrelation 0xca00+STD_BETA_BM,0x0a02
99 #define writeBMOCSelectAutoN(NN) 0xca00+STD_BETA_BM,0x0a00+((NN)&0xff)
101 #define  readBMOCSelectOCNumber 0xc200+STD_BETA_BM,0x0b00
102 #define writeBMOCSelectOCNumberNone 0xca00+STD_BETA_BM,0x0b40
103 #define writeBMOCSelectOCNumberDOC0 0xca00+STD_BETA_BM,0x0b00
104 #define writeBMOCSelectOCNumberDOC1 0xca00+STD_BETA_BM,0x0b01
105 #define writeBMOCSelectOCNumberDOC2 0xca00+STD_BETA_BM,0x0b02
106 #define writeBMOCSelectOCNumberDOC3 0xca00+STD_BETA_BM,0x0b03
107 #define writeBMOCSelectOCNumberDOCAuto 0xca00+STD_BETA_BM,0x0b0f
109 /* Combination OCNumber and Auto*/
110 #define  readBMOCSelectOCAuto 0xc300+STD_BETA_BM,0x000a
111 #define writeBMOCSelectOCAutoNone          0xcb00+STD_BETA_BM,0x000a,0x4000
112 #define writeBMOCSelectOCAutoDOC0CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0000
113 #define writeBMOCSelectOCAutoDOC0CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0002
114 #define writeBMOCSelectOCAutoDPC0CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0001
115 #define writeBMOCSelectOCAutoDPC0CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0003
116 #define writeBMOCSelectOCAutoDOC1CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0100
117 #define writeBMOCSelectOCAutoDOC1CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0102
118 #define writeBMOCSelectOCAutoDPC1CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0101
119 #define writeBMOCSelectOCAutoDPC1CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0103
120 #define writeBMOCSelectOCAutoDOC2CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0200
121 #define writeBMOCSelectOCAutoDOC2CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0202
122 #define writeBMOCSelectOCAutoDPC2CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0201
123 #define writeBMOCSelectOCAutoDPC2CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0203
124 #define writeBMOCSelectOCAutoDOC3CorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0300
125 #define writeBMOCSelectOCAutoDOC3CorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0302
126 #define writeBMOCSelectOCAutoDOCAutoCorrelOff 0xcb00+STD_BETA_BM,0x000a,0x0f00
127 #define writeBMOCSelectOCAutoDOCAutoCorrelOn  0xcb00+STD_BETA_BM,0x000a,0x0f02
129 #define  readBMOCStatus 0xc400+STD_BETA_BM,0x000c
130 #define  readBMOutputConfigurationStatus readBMOCStatus
132 #define  readBMOCStatusChannelsLowFreq 0xc200+STD_BETA_BM,0x0c00
133 #define wroteBMOCStatusChannelsLowFreqMain 0xca00+STD_BETA_BM,0x0c02
134 #define wroteBMOCStatusChannelsLowFreqCntr 0xca00+STD_BETA_BM,0x0c04
135 #define wroteBMOCStatusChannelsLowFreqSurr 0xca00+STD_BETA_BM,0x0c08
136 #define wroteBMOCStatusChannelsLowFreqBack 0xca00+STD_BETA_BM,0x0c10
137 #define wroteBMOCStatusChannelsLowFreqWide 0xca00+STD_BETA_BM,0x0c20
138 #define wroteBMOCStatusChannelsLowFreqHigh 0xca00+STD_BETA_BM,0x0c40
140 #define  readBMOCStatusAncillary 0xc200+STD_BETA_BM,0x0d00
141 #define wroteBMOCStatusAncillaryDgtlLBNoneStd 0xca00+STD_BETA_BM,0x0d81
142 #define wroteBMOCStatusAncillaryDgtlLBNoneAlt 0xca00+STD_BETA_BM,0x0d83
143 #define wroteBMOCStatusAncillaryDgtlLBFrntStd 0xca00+STD_BETA_BM,0x0d95
144 #define wroteBMOCStatusAncillaryDgtlLBFrntAlt 0xca00+STD_BETA_BM,0x0d97
145 #define wroteBMOCStatusAncillaryDgtlLBRearStd 0xca00+STD_BETA_BM,0x0d99
146 #define wroteBMOCStatusAncillaryDgtlLBRearAlt 0xca00+STD_BETA_BM,0x0d9b
147 #define wroteBMOCStatusAncillaryDgtlLBBothStd 0xca00+STD_BETA_BM,0x0d9d
148 #define wroteBMOCStatusAncillaryDgtlLBBothAlt 0xca00+STD_BETA_BM,0x0d9f
149 #define wroteBMOCStatusAncillaryAnlgLBNoneSubwStd 0xca00+STD_BETA_BM,0x0d00
150 #define wroteBMOCStatusAncillaryAnlgLBNoneSubwFil 0xca00+STD_BETA_BM,0x0d01
151 #define wroteBMOCStatusAncillaryAnlgLBFrntSubwStd 0xca00+STD_BETA_BM,0x0d14
152 #define wroteBMOCStatusAncillaryAnlgLBFrntSubwFil 0xca00+STD_BETA_BM,0x0d15
153 #define wroteBMOCStatusAncillaryAnlgLBRearSubwStd 0xca00+STD_BETA_BM,0x0d18
154 #define wroteBMOCStatusAncillaryAnlgLBRearSubwFil 0xca00+STD_BETA_BM,0x0d19
155 #define wroteBMOCStatusAncillaryAnlgLBBothSubwStd 0xca00+STD_BETA_BM,0x0d1c
156 #define wroteBMOCStatusAncillaryAnlgLBBothSubwFil 0xca00+STD_BETA_BM,0x0d1d
158 #define  readBMOCStatusAuto 0xc200+STD_BETA_BM,0x0e00
159 #define wroteBMOCStatusAutoDisable 0xca00+STD_BETA_BM,0x0e00
160 #define wroteBMOCStatusAutoProLogic 0xca00+STD_BETA_BM,0x0e01
161 #define wroteBMOCStatusAutoCorrelation 0xca00+STD_BETA_BM,0x0e02
163 #define  readBMOCStatusOCNumber 0xc200+STD_BETA_BM,0x0f00
164 #define wroteBMOCStatusOCNumberNone 0xca00+STD_BETA_BM,0x0f40
165 #define wroteBMOCStatusOCNumberDOC0 0xca00+STD_BETA_BM,0x0f00
166 #define wroteBMOCStatusOCNumberDOC1 0xca00+STD_BETA_BM,0x0f01
167 #define wroteBMOCStatusOCNumberDOC2 0xca00+STD_BETA_BM,0x0f02
168 #define wroteBMOCStatusOCNumberDOC3 0xca00+STD_BETA_BM,0x0f03
169 #define wroteBMOCStatusOCNumberDOCAuto 0xca00+STD_BETA_BM,0x0f0f
171 /* Combination OCNumber and Auto*/
172 #define  readBMOCStatusOCAuto 0xc300+STD_BETA_BM,0x000e
173 #define wroteBMOCStatusOCAutoNoneCorrelOffPLOff 0xcb00+STD_BETA_BM,0x000e,0x4000
174 #define wroteBMOCStatusOCAutoNoneCorrelOffPLOn  0xcb00+STD_BETA_BM,0x000e,0x4001
175 #define wroteBMOCStatusOCAutoNoneCorrelOnPLOff  0xcb00+STD_BETA_BM,0x000e,0x4002
176 #define wroteBMOCStatusOCAutoNoneCorrelOnPLOn   0xcb00+STD_BETA_BM,0x000e,0x4003
177 #define wroteBMOCStatusOCAutoDOC0CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0000
178 #define wroteBMOCStatusOCAutoDOC0CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0002
179 #define wroteBMOCStatusOCAutoDPC0CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0001
180 #define wroteBMOCStatusOCAutoDPC0CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0003
181 #define wroteBMOCStatusOCAutoDOC1CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0100
182 #define wroteBMOCStatusOCAutoDOC1CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0102
183 #define wroteBMOCStatusOCAutoDPC1CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0101
184 #define wroteBMOCStatusOCAutoDPC1CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0103
185 #define wroteBMOCStatusOCAutoDOC2CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0200
186 #define wroteBMOCStatusOCAutoDOC2CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0202
187 #define wroteBMOCStatusOCAutoDPC2CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0201
188 #define wroteBMOCStatusOCAutoDPC2CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0203
189 #define wroteBMOCStatusOCAutoDOC3CorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0300
190 #define wroteBMOCStatusOCAutoDOC3CorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0302
191 #define wroteBMOCStatusOCAutoDOCAutoCorrelOff 0xcb00+STD_BETA_BM,0x000e,0x0f00
192 #define wroteBMOCStatusOCAutoDOCAutoCorrelOn  0xcb00+STD_BETA_BM,0x000e,0x0f02
194 #define  readBMOverrideBassCollectionMask           0xc200+STD_BETA_BM,0x1000
195 #define writeBMOverrideBassCollectionMaskMain       0xca00+STD_BETA_BM,0x1002
196 #define writeBMOverrideBassCollectionMaskCntr       0xca00+STD_BETA_BM,0x1004
197 #define writeBMOverrideBassCollectionMaskMainCntr   0xca00+STD_BETA_BM,0x1006
198 #define writeBMOverrideBassCollectionMaskSurr       0xca00+STD_BETA_BM,0x1008
199 #define writeBMOverrideBassCollectionMaskBack       0xca00+STD_BETA_BM,0x1010
200 #define writeBMOverrideBassCollectionMaskN(n)       \
201 0xca00+STD_BETA_BM,(0x1000 | (0x00ff & n))
202 #define writeBMOverrideBassCollectionMaskNone       \
203 writeBMOverrideBassCollectionMaskN(0)
205 #define  readBMFilterRateStatus         0xc200+STD_BETA_BM,0x1100
206 #define wroteBMFilterRateStatus32000Hz  0xca00+STD_BETA_BM,0x1102
207 #define wroteBMFilterRateStatus44100Hz  0xca00+STD_BETA_BM,0x1103
208 #define wroteBMFilterRateStatus48000Hz  0xca00+STD_BETA_BM,0x1104
209 #define wroteBMFilterRateStatus88200Hz  0xca00+STD_BETA_BM,0x1105
210 #define wroteBMFilterRateStatus96000Hz  0xca00+STD_BETA_BM,0x1106
211 #define wroteBMFilterRateStatus192000Hz 0xca00+STD_BETA_BM,0x1107
212 #define wroteBMFilterRateStatus64000Hz  0xca00+STD_BETA_BM,0x1108
213 #define wroteBMFilterRateStatus128000Hz 0xca00+STD_BETA_BM,0x1109
214 #define wroteBMFilterRateStatus176400Hz 0xca00+STD_BETA_BM,0x110a
216 #define  readBMBypass           0xc200+STD_BETA_BM,0x1200
217 #define writeBMBypassDisable    0xca00+STD_BETA_BM,0x1200
218 #define writeBMBypassEnable     0xca00+STD_BETA_BM,0x1201
220 #define  readBMLFEVolume        0xc200+STD_BETA_BM,0x1300
221 #define writeBMLFEVolumeN(NN)   0xca00+STD_BETA_BM,0x1300+((NN)&0xff)
222 /* See associated satellite volume control commands below */
224 #define  readBMModeStatus             0xc200+STD_BETA_BM,0x1500
225 #define wroteBMModeStatusDisabled     0xca00+STD_BETA_BM,0x1500
226 #define wroteBMModeStatusLPF2ndOrder  0xca00+STD_BETA_BM,0x1501
227 #define wroteBMModeStatusLPF4thOrder  0xca00+STD_BETA_BM,0x1502
229 #define  readBMFcSatAll                             0xc600+STD_BETA_BM,0x1808
230 #define writeBMFcSatAllN(FcMain,FcCntr,FcSurr,FcBack) \
231 0xce00+STD_BETA_BM,0x1808, \
232             FcMain,FcCntr,FcSurr,FcBack
233 /*
234   writeBMFilterCutoffSelectN() is obsolete.
235   It is defined only for use by legacy applications.
236   Do not use in new applications.
237 */
238 #define writeBMFilterCutoffSelectN(N) writeBMFcSatAllN((N),(N),(N),(N))
240 #define  readBMFcMain                               0xc300+STD_BETA_BM,0x0018
241 #define writeBMFcMainN(NN)                          0xcb00+STD_BETA_BM,0x0018,NN
242 #define  readBMFcCntr                               0xc300+STD_BETA_BM,0x001a
243 #define writeBMFcCntrN(NN)                          0xcb00+STD_BETA_BM,0x001a,NN
244 #define  readBMFcSurr                               0xc300+STD_BETA_BM,0x001c
245 #define writeBMFcSurrN(NN)                          0xcb00+STD_BETA_BM,0x001c,NN
246 #define  readBMFcBack                               0xc300+STD_BETA_BM,0x001e
247 #define writeBMFcBackN(NN)                          0xcb00+STD_BETA_BM,0x001e,NN
248 #define  readBMFcWide                               0xc300+STD_BETA_BM,0x0034
249 #define writeBMFcWideN(NN)                          0xcb00+STD_BETA_BM,0x0034,NN
250 #define  readBMFcHigh                               0xc300+STD_BETA_BM,0x0036
251 #define writeBMFcHighN(NN)                          0xcb00+STD_BETA_BM,0x0036,NN
252 /* Old BMFc commands:*/
253 #define  readBMFcAll readBMFcSatAll
254 #define writeBMFcAllN(FcMain,FcCntr,FcSurr,FcBack) \
255 writeBMFcSatAllN(FcMain,FcCntr,FcSurr,FcBack)
257 #define  readBMFcStatusSatAll                       0xc600+STD_BETA_BM,0x2008
258 #define  readBMFcStatusMain                         0xc300+STD_BETA_BM,0x0020
259 #define  readBMFcStatusCntr                         0xc300+STD_BETA_BM,0x0022
260 #define  readBMFcStatusSurr                         0xc300+STD_BETA_BM,0x0024
261 #define  readBMFcStatusBack                         0xc300+STD_BETA_BM,0x0026
262 #define  readBMFcStatusWide                         0xc300+STD_BETA_BM,0x0038
263 #define  readBMFcStatusHigh                         0xc300+STD_BETA_BM,0x003a
264 /* Old BMFcStatus commands:*/
265 #define  readBMFcStatusAll readBMFcStatusSatAll
267 #define  readBMFcSubAll                             0xc600+STD_BETA_BM,0x2804
268 #define writeBMFcSubAllN(FcLFE,FcSubw)              \
269 0xce00+STD_BETA_BM,0x2804, FcLFE,FcSubw
270 #define  readBMFcLFE                                0xc300+STD_BETA_BM,0x0028
271 #define writeBMFcLFEN(NN)                           0xcb00+STD_BETA_BM,0x0028,NN
272 #define  readBMFcSubw                               0xc300+STD_BETA_BM,0x002a
273 #define writeBMFcSubwN(NN)                          0xcb00+STD_BETA_BM,0x002a,NN
275 #define  readBMFcStatusSubAll                       0xc600+STD_BETA_BM,0x2c04
276 #define  readBMFcStatusLFE                          0xc300+STD_BETA_BM,0x002c
277 #define  readBMFcStatusSubw                         0xc300+STD_BETA_BM,0x002e
279 #define  readBMMainVolume                           0xc200+STD_BETA_BM,0x3000
280 #define writeBMMainVolumeN(NN)                      \
281 0xca00+STD_BETA_BM,0x3000+((NN)&0x0ff)
282 #define  readBMCntrVolume                           0xc200+STD_BETA_BM,0x3100
283 #define writeBMCntrVolumeN(NN)                      \
284 0xca00+STD_BETA_BM,0x3100+((NN)&0x0ff)
285 #define  readBMSurrVolume                           0xc200+STD_BETA_BM,0x3200
286 #define writeBMSurrVolumeN(NN)                      \
287 0xca00+STD_BETA_BM,0x3200+((NN)&0x0ff)
288 #define  readBMBackVolume                           0xc200+STD_BETA_BM,0x3300
289 #define writeBMBackVolumeN(NN)                      \
290 0xca00+STD_BETA_BM,0x3300+((NN)&0x0ff)
291 #define  readBMWideVolume                           0xc200+STD_BETA_BM,0x3c00
292 #define writeBMWideVolumeN(NN)                      \
293 0xca00+STD_BETA_BM,0x3c00+((NN)&0x0ff)
294 #define  readBMHighVolume                           0xc200+STD_BETA_BM,0x3d00
295 #define writeBMHighVolumeN(NN)                      \
296 0xca00+STD_BETA_BM,0x3d00+((NN)&0x0ff)
298 #define  readBMOptions                              \
299 0xc200+STD_BETA_BM,0x3f00                           
300 #define writeBMOptionsN(NN)                         \
301 0xca00+STD_BETA_BM,0x3f00+((NN)&0x0ff)
303 #define readBMOCSelectExt             0xc200+STD_BETA_BM,0x4000   
304 #define writeBMOCSelectExtSpeakerNone 0xca00+STD_BETA_BM,0x0400
305 #define writeBMOCSelectExtSpeakerLRTF 0xca00+STD_BETA_BM,0x0401
306 #define writeBMOCSelectExtSpeakerLTMD 0xca00+STD_BETA_BM,0x0402
308 #define  readBMStatus 0xc508,STD_BETA_BM
309 #define  readBMControl \
310          readBMMode, \
311          readBMBypass, \
312          readBMOCAuto, \
313          readBMOCSelect, \
314          readBMFcSatAll, \
315          readBMFcWide, \
316          readBMFcHigh, \
317          readBMFcSubAll, \
318          readBMMainVolume, \
319          readBMCntrVolume, \
320          readBMSurrVolume, \
321          readBMBackVolume, \
322          readBMLFEVolume, \
323          readBMWideVolume, \
324          readBMHighVolume, \
325          readBMOverrideBassCollectionMask, \
326          readBMOptions,\
327          readBMOCSelectExt
328 /*
329  Digital-only implementation test setup for direct mode
330  selection of Dolby "Speaker setup"
332  Requires speaker setup in auto mode:
334      writeSYSRecreationModeAuto
335      writeSYSSpeakerCntr[None][Small1]
336      writeSYSSpeakerSurr[None][Small2]
337      writeSYSSpeakerBack[None][Small1][Small2]
338      writeSYSSpeakerSubw[None][Bass1]
340      Note: "None, 1 and 2" are significant above;
341            "Small" is ignored for the following.
343  Then switch to direct mode:
345      writeSYSRecreationModeDirect
347  Then send appropriate alpha code for Dolby reference
348  "Speaker setup" configuration using convention:
350      X X X X Y
351       0 1 2 3 0
353  where:
355      X  refers to Main channels:   Small/Large (S/L)
356       0
358      X  refers to Cntr channel:    None/Small/Large (0/S/L)
359       1
361      X  refers to Surr channels:   None/Small/Large (0/S/L)
362       2
364      X  refers to Back channel(s): None/Small/Large (0/S/L)
365       3
367      Y  refers to Subw channel:    None/Bass1 (0/1)
368       0
370  Example sequence:
372      Establish which channels may be active:
374      writeSYSRecreationModeAuto
375      writeSYSSpeakerCntrSmall1
376      writeSYSSpeakerSurrSmall2
377      writeSYSSpeakerBackNone
378      writeSYSSpeakerSubwBass1
379      writeSYSRecreationModeDirect
381      Then select any of the following to apply:
383      writeBMOCSelect_LLL01
384      writeBMOCSelect_LLS01
385      writeBMOCSelect_LSL01
386      writeBMOCSelect_LSS01
387      writeBMOCSelect_SLL01
388      writeBMOCSelect_SLS01
389      writeBMOCSelect_SSL01
390      writeBMOCSelect_SSS01
392  Note that these are "Digital-Only" selections.
393  If Digital/Analog implementation is desired, or other
394  ancillary feature, it is required to write the
395  ancillary register exclusively afterward. Such as,
396  select DOC2 "Alternate" configuration by:
398      writeSYSRecreationModeAuto
399      writeSYSSpeakerCntrSmall1
400      writeSYSSpeakerSurrSmall2
401      writeSYSSpeakerBackNone
402      writeSYSSpeakerSubwNone
403      writeSYSRecreationModeDirect
404      writeBMOCSelect_LSS00
405      writeBMOCSelectAncillaryDgtlLBNoneAlt
406 */
407 #define  writeBMOCSelect_LLLS1 0xcc00+STD_BETA_BM,0x0008,0x810e,0x0302
408 #define  writeBMOCSelect_LLLS0 writeBMOCSelect_LLLS1
409 #define  writeBMOCSelect_LLSS1 0xcc00+STD_BETA_BM,0x0008,0x8106,0x0102
410 #define  writeBMOCSelect_LLSS0 0xcc00+STD_BETA_BM,0x0008,0x8106,0x0202
411 #define  writeBMOCSelect_LL0S1 0xcc00+STD_BETA_BM,0x0008,0x8106,0x0302
412 #define  writeBMOCSelect_LL0S0 writeBMOCSelect_LLSS0
413 #define  writeBMOCSelect_LSLS1 0xcc00+STD_BETA_BM,0x0008,0x810a,0x0302
414 #define  writeBMOCSelect_LSLS0 writeBMOCSelect_LSLS1
415 #define  writeBMOCSelect_LSSS1 0xcc00+STD_BETA_BM,0x0008,0x8102,0x0102
416 #define  writeBMOCSelect_LSSS0 0xcc00+STD_BETA_BM,0x0008,0x8102,0x0202
417 #define  writeBMOCSelect_LS0S1 writeBMOCSelect_LSSS1
418 #define  writeBMOCSelect_LS0S0 writeBMOCSelect_LSSS0
419 #define  writeBMOCSelect_L0LS1 writeBMOCSelect_LSLS1
420 #define  writeBMOCSelect_L0LS0 writeBMOCSelect_LSLS1
421 #define  writeBMOCSelect_L0SS1 writeBMOCSelect_LSSS1
422 #define  writeBMOCSelect_L0SS0 writeBMOCSelect_LSSS0
423 #define  writeBMOCSelect_L00S1 writeBMOCSelect_LSSS1
424 #define  writeBMOCSelect_L00S0 writeBMOCSelect_LSSS0
426 #define  writeBMOCSelect_SLLS1 0xcc00+STD_BETA_BM,0x0008,0x810c,0x0102
427 #define  writeBMOCSelect_SLLS0 0xcc00+STD_BETA_BM,0x0008,0x810c,0x0202
428 #define  writeBMOCSelect_SLSS1 0xcc00+STD_BETA_BM,0x0008,0x8104,0x0102
429 #define  writeBMOCSelect_SL0S1 writeBMOCSelect_SLSS1
430 #define  writeBMOCSelect_SSLS1 0xcc00+STD_BETA_BM,0x0008,0x8108,0x0102
431 #define  writeBMOCSelect_SSLS0 0xcc00+STD_BETA_BM,0x0008,0x8108,0x0202
432 #define  writeBMOCSelect_SSSS1 0xcc00+STD_BETA_BM,0x0008,0x8100,0x0102
433 #define  writeBMOCSelect_SSSS0 writeBMOCSelect_SSSS1
434 #define  writeBMOCSelect_SS0S1 writeBMOCSelect_SSSS1
435 #define  writeBMOCSelect_SS0S0 writeBMOCSelect_SSSS1
436 #define  writeBMOCSelect_S0LS1 writeBMOCSelect_SSLS1
437 #define  writeBMOCSelect_S0LS0 writeBMOCSelect_SSLS0
438 #define  writeBMOCSelect_S0SS1 writeBMOCSelect_SSSS1
439 #define  writeBMOCSelect_S0SS0 writeBMOCSelect_SSSS1
440 #define  writeBMOCSelect_S00S1 writeBMOCSelect_SSSS1
441 #define  writeBMOCSelect_S00S0 writeBMOCSelect_SSSS1
443 #define  writeBMOCSelect_LLLL1 0xcc00+STD_BETA_BM,0x0008,0x811e,0x0302
444 #define  writeBMOCSelect_LLLL0 writeBMOCSelect_LLLL1
445 #define  writeBMOCSelect_LLSL1 0xcc00+STD_BETA_BM,0x0008,0x8116,0x0102
446 #define  writeBMOCSelect_LLSL0 0xcc00+STD_BETA_BM,0x0008,0x8116,0x0202
447 #define  writeBMOCSelect_LL0L1 0xcc00+STD_BETA_BM,0x0008,0x8116,0x0302
448 #define  writeBMOCSelect_LL0L0 writeBMOCSelect_LLSL0
449 #define  writeBMOCSelect_LSLL1 0xcc00+STD_BETA_BM,0x0008,0x811a,0x0302
450 #define  writeBMOCSelect_LSLL0 writeBMOCSelect_LSLL1
451 #define  writeBMOCSelect_LSSL1 0xcc00+STD_BETA_BM,0x0008,0x8112,0x0102
452 #define  writeBMOCSelect_LSSL0 0xcc00+STD_BETA_BM,0x0008,0x8112,0x0202
453 #define  writeBMOCSelect_LS0L1 writeBMOCSelect_LSSL1
454 #define  writeBMOCSelect_LS0L0 writeBMOCSelect_LSSL0
455 #define  writeBMOCSelect_L0LL1 writeBMOCSelect_LSLL1
456 #define  writeBMOCSelect_L0LL0 writeBMOCSelect_LSLL1
457 #define  writeBMOCSelect_L0SL1 writeBMOCSelect_LSSL1
458 #define  writeBMOCSelect_L0SL0 writeBMOCSelect_LSSL0
459 #define  writeBMOCSelect_L00L1 writeBMOCSelect_LSSL1
460 #define  writeBMOCSelect_L00L0 writeBMOCSelect_LSSL0
462 #define  writeBMOCSelect_SLLL1 0xcc00+STD_BETA_BM,0x0008,0x811c,0x0102
463 #define  writeBMOCSelect_SLLL0 0xcc00+STD_BETA_BM,0x0008,0x811c,0x0202
464 #define  writeBMOCSelect_SLSL1 0xcc00+STD_BETA_BM,0x0008,0x8114,0x0102
465 #define  writeBMOCSelect_SL0L1 writeBMOCSelect_SLSL1
466 #define  writeBMOCSelect_SSLL1 0xcc00+STD_BETA_BM,0x0008,0x8118,0x0102
467 #define  writeBMOCSelect_SSLL0 0xcc00+STD_BETA_BM,0x0008,0x8118,0x0202
468 #define  writeBMOCSelect_SSSL1 0xcc00+STD_BETA_BM,0x0008,0x8110,0x0102
469 #define  writeBMOCSelect_SSSL0 writeBMOCSelect_SSSL1
470 #define  writeBMOCSelect_SS0L1 writeBMOCSelect_SSSL1
471 #define  writeBMOCSelect_SS0L0 writeBMOCSelect_SSSL1
472 #define  writeBMOCSelect_S0LL1 writeBMOCSelect_SSLL1
473 #define  writeBMOCSelect_S0LL0 writeBMOCSelect_SSLL0
474 #define  writeBMOCSelect_S0SL1 writeBMOCSelect_SSSL1
475 #define  writeBMOCSelect_S0SL0 writeBMOCSelect_SSSL1
476 #define  writeBMOCSelect_S00L1 writeBMOCSelect_SSSL1
477 #define  writeBMOCSelect_S00L0 writeBMOCSelect_SSSL1
479 #define  writeBMOCSelect_LLL01 writeBMOCSelect_LLLS1
480 #define  writeBMOCSelect_LLL00 writeBMOCSelect_LLLS0
481 #define  writeBMOCSelect_LLS01 writeBMOCSelect_LLSS1
482 #define  writeBMOCSelect_LLS00 writeBMOCSelect_LLSS0
483 #define  writeBMOCSelect_LL001 writeBMOCSelect_LLSS1
484 #define  writeBMOCSelect_LL000 writeBMOCSelect_LLSS0
485 #define  writeBMOCSelect_LSL01 writeBMOCSelect_LSLS1
486 #define  writeBMOCSelect_LSL00 writeBMOCSelect_LSLS0
487 #define  writeBMOCSelect_LSS01 writeBMOCSelect_LSSS1
488 #define  writeBMOCSelect_LSS00 writeBMOCSelect_LSSS0
489 #define  writeBMOCSelect_LS001 writeBMOCSelect_LSSS1
490 #define  writeBMOCSelect_LS000 writeBMOCSelect_LSSS0
491 #define  writeBMOCSelect_L0L01 writeBMOCSelect_LSLS1
492 #define  writeBMOCSelect_L0L00 writeBMOCSelect_LSLS0
493 #define  writeBMOCSelect_L0S01 writeBMOCSelect_LSSS1
494 #define  writeBMOCSelect_L0S00 writeBMOCSelect_LSSS0
495 #define  writeBMOCSelect_L0001 writeBMOCSelect_LSSS1
496 #define  writeBMOCSelect_L0000 writeBMOCSelect_LSSS0
498 #define  writeBMOCSelect_SLL01 writeBMOCSelect_SLLS1
499 #define  writeBMOCSelect_SLL00 writeBMOCSelect_SLLS0
500 #define  writeBMOCSelect_SLS01 writeBMOCSelect_SLSS1
501 #define  writeBMOCSelect_SL001 writeBMOCSelect_SLSS1
502 #define  writeBMOCSelect_SSL01 writeBMOCSelect_SSLS1
503 #define  writeBMOCSelect_SSL00 writeBMOCSelect_SSLS0
504 #define  writeBMOCSelect_SSS01 writeBMOCSelect_SSSS1
505 #define  writeBMOCSelect_SSS00 writeBMOCSelect_SSSS0
506 #define  writeBMOCSelect_SS001 writeBMOCSelect_SSSS1
507 #define  writeBMOCSelect_SS000 writeBMOCSelect_SSSS0
508 #define  writeBMOCSelect_S0L01 writeBMOCSelect_SSLS1
509 #define  writeBMOCSelect_S0L00 writeBMOCSelect_SSLS0
510 #define  writeBMOCSelect_S0S01 writeBMOCSelect_SSSS1
511 #define  writeBMOCSelect_S0S00 writeBMOCSelect_SSSS0
512 #define  writeBMOCSelect_S0001 writeBMOCSelect_SSSS1
513 #define  writeBMOCSelect_S0000 writeBMOCSelect_SSSS0
515 #define  readBMCcrSat           0xc200+STD_BETA_BM,0x1600
516 #define  readBMCcrSub           0xc200+STD_BETA_BM,0x1700
517 #define  readBMCcrExt           0xc200+STD_BETA_BM,0x3e00
519 #endif /* _BM2_A */