2 /*
3 Copyright (c) 2016, Texas Instruments Incorporated - http://www.ti.com/
4 All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
36 //
37 // Input / output device configuration definitions
38 //
40 //#include <ti/procsdk_audio/procsdk_audio_typ.h>
41 #include <procsdk_audio_typ.h>
43 #include <acptype.h>
44 #include <acpbeta.h>
45 #include <pafstd_a.h>
46 #include <pafdec_a.h>
47 #include <pafenc_a.h>
48 #include <pafsio.h>
50 #include <alpha/pcm_a.h>
52 #include <inpbuf_a.h>
53 #include <outbuf_a.h>
55 #include <pa_i13_evmk2g_io_a.h> //<pa_i13_evmda830_io_a.h>
57 #ifndef SIMULATE_SIO
58 #include <sap_d10.h>
59 #else // SIMULATE_SIO
60 #include <dap_e17.h>
61 #endif // SIMULATE_SIO
63 #define rb32DECSourceDecode 0xc024,0x0b81
64 #define ob32DECSourceDecodeNone 0x0001,0x0000
66 #define rb32IBSioSelect 0xc022,0x0581
67 #define ob32IBSioSelect(X) (X)|0x0080,0x0000
69 #define ob32OBSioSelect(X) (X)|0x0080,0x0000
70 #define rb32DECSourceSelect_3 0xc024,0x09b1
71 #define wb32DECSourceSelect_3 0xc024,0x09f1
73 #define writePA3Await(RB32,WB32) 0xcd0b,5+2,0x0204,200,10,WB32,RB32
75 // -----------------------------------------------------------------------------
76 //
77 // Input device configurations & shortcut definitions
78 //
80 #ifndef SIMULATE_SIO
81 const struct
82 {
83 Int n;
84 const PAF_SIO_Params *x[DEVINP_N];
85 } patchs_devinp[1] =
86 {
87 DEVINP_N,
88 // These values reflect the definitions DEVINP_* in pa*io_a.h:
89 NULL, // InNone
90 (const PAF_SIO_Params *) &SAP_D10_RX_HDMI_STEREO, // InHDMIStereo
91 (const PAF_SIO_Params *) &SAP_D10_RX_HDMI, // InHDMI
92 (const PAF_SIO_Params *) &SAP_D10_RX_DIR, // InDigital
93 (const PAF_SIO_Params *) &SAP_D10_RX_ADC_44100HZ, // InAnalog
94 };
96 #else // SIMULATE_SIO
97 const struct
98 {
99 Int n;
100 const PAF_SIO_Params *x[DEVINP_N];
101 } patchs_devinp[1] =
102 {
103 DEVINP_N,
104 // These values reflect the definitions DEVINP_* in pa*io_a.h:
105 NULL, // InNone
106 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_DIR, // InDigital
107 (const PAF_SIO_Params *) &DAP_E17_RX_ADC_48000HZ, // InAnalog
108 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_ADC_STEREO_48000HZ, // InAnalogStereo
109 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_1394_STEREO, // In1394Stereo
110 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_1394, // In1394
111 NULL, // InRingIO
112 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_HDMI, // InHDMI
113 NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_HDMI_STEREO // InHDMIStereo
114 };
116 #endif // SIMULATE_SIO
118 // .............................................................................
119 // execPAIInNone
120 #define CUS_SIGMA32_S \
121 writeDECSourceSelectNone, \
122 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
123 wroteDECSourceProgramUnknown, \
124 writeIBSampleRateOverrideUnknown, \
125 writeIBSioSelectN(DEVINP_NULL), \
126 0xcdf0,execPAIInNone
128 #pragma DATA_SECTION(cus_sigma32_s0, ".none")
129 const ACP_Unit cus_sigma32_s0[] = {
130 0xc900 + 0 - 1,
131 CUS_SIGMA32_S,
132 };
134 const ACP_Unit cus_sigma32_s[] = {
135 0xc900 + sizeof (cus_sigma32_s0) / 2 - 1,
136 CUS_SIGMA32_S,
137 };
139 #ifndef SIMULATE_SIO
140 // execPAIInHDMIStereo
141 #define CUS_SIGMA33_S \
142 writeDECSourceSelectNone, \
143 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
144 writePCMChannelConfigurationProgramStereoUnknown, \
145 writePCMScaleVolumeN(0), \
146 writeDECChannelMapFrom2(0,1), \
147 writeIBUnknownTimeoutN(8*1024), \
148 writeIBScanAtHighSampleRateModeEnable, \
149 writeIBEmphasisOverrideNo, \
150 writeIBPrecisionOverride24, \
151 writeIBSampleRateOverrideStandard, \
152 writeIBSioSelectN(DEVINP_HDMI_STEREO), \
153 wroteDECSourceProgramUnknown, \
154 writeDECSourceSelectAuto, \
155 0xcdf0,execPAIInHDMIStereo
157 #pragma DATA_SECTION(cus_sigma33_s0, ".none")
158 const ACP_Unit cus_sigma33_s0[] = {
159 0xc900 + 0 - 1,
160 CUS_SIGMA33_S,
161 };
163 const ACP_Unit cus_sigma33_s[] = {
164 0xc900 + sizeof (cus_sigma33_s0) / 2 - 1,
165 CUS_SIGMA33_S,
166 };
168 // execPAIInHDMI
169 #define CUS_SIGMA34_S \
170 writeDECSourceSelectNone, \
171 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
172 writePCMChannelConfigurationProgramSurround4_1, \
173 writePCMScaleVolumeN(0), \
174 writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
175 writeIBUnknownTimeoutN(15*1024), \
176 writeIBScanAtHighSampleRateModeEnable, \
177 writeIBEmphasisOverrideNo, \
178 writeIBPrecisionOverride24, \
179 writeIBSampleRateOverrideStandard, \
180 writeIBSioSelectN(DEVINP_HDMI), \
181 wroteDECSourceProgramUnknown, \
182 writeDECSourceSelectAuto, \
183 0xcdf0,execPAIInHDMI
185 // writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
186 #pragma DATA_SECTION(cus_sigma34_s0, ".none")
187 const ACP_Unit cus_sigma34_s0[] = {
188 0xc900 + 0 - 1,
189 CUS_SIGMA34_S,
190 };
192 const ACP_Unit cus_sigma34_s[] = {
193 0xc900 + sizeof (cus_sigma34_s0) / 2 - 1,
194 CUS_SIGMA34_S,
195 };
197 // execPAIInDigital
198 #define CUS_SIGMA35_S \
199 writeDECSourceSelectNone, \
200 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
201 writeIBUnknownTimeoutN(2*2048), \
202 writeIBScanAtHighSampleRateModeDisable, \
203 writePCMChannelConfigurationProgramStereoUnknown, \
204 writePCMScaleVolumeN(0), \
205 writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
206 writeIBEmphasisOverrideDisable, \
207 writeIBPrecisionDefaultOriginal, \
208 writeIBPrecisionOverrideDetect, \
209 writeIBSampleRateOverrideStandard, \
210 writeIBSioSelectN(DEVINP_DIR), \
211 wroteDECSourceProgramUnknown, \
212 writeDECSourceSelectAuto, \
213 0xcdf0,execPAIInDigital
215 #pragma DATA_SECTION(cus_sigma35_s0, ".none")
216 const ACP_Unit cus_sigma35_s0[] = {
217 0xc900 + 0 - 1,
218 CUS_SIGMA35_S,
219 };
221 const ACP_Unit cus_sigma35_s[] = {
222 0xc900 + sizeof (cus_sigma35_s0) / 2 - 1,
223 CUS_SIGMA35_S,
224 };
226 // execPAIInAnalog
227 #define CUS_SIGMA36_S \
228 writeDECSourceSelectNone, \
229 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
230 writePCMChannelConfigurationProgramSurround4_1, \
231 writePCMScaleVolumeN(2*6), \
232 writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
233 writeIBEmphasisOverrideNo, \
234 writeIBPrecisionOverride24, \
235 writeIBSampleRateOverride44100Hz, \
236 writeIBSioSelectN(DEVINP_ADC), \
237 writeDECSourceSelectPCM, \
238 0xcdf0,execPAIInAnalog
240 #pragma DATA_SECTION(cus_sigma36_s0, ".none")
241 const ACP_Unit cus_sigma36_s0[] = {
242 0xc900 + 0 - 1,
243 CUS_SIGMA36_S,
244 };
246 const ACP_Unit cus_sigma36_s[] = {
247 0xc900 + sizeof (cus_sigma36_s0) / 2 - 1,
248 CUS_SIGMA36_S,
249 };
251 #else // SIMULATE_SIO
252 // execPAIInDigital
253 #define CUS_SIGMA33_S \
254 writeDECSourceSelectNone, \
255 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
256 writeIBUnknownTimeoutN(2*2048), \
257 writeIBScanAtHighSampleRateModeDisable, \
258 writePCMChannelConfigurationProgramStereoUnknown, \
259 writePCMScaleVolumeN(0), \
260 writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
261 writeIBEmphasisOverrideDisable, \
262 writeIBPrecisionDefaultOriginal, \
263 writeIBPrecisionOverrideDetect, \
264 writeIBSampleRateOverrideStandard, \
265 writeIBSioSelectN(DEVINP_DIR), \
266 wroteDECSourceProgramUnknown, \
267 writeDECSourceSelectAuto, \
268 0xcdf0,execPAIInDigital
270 #pragma DATA_SECTION(cus_sigma33_s0, ".none")
271 const ACP_Unit cus_sigma33_s0[] = {
272 0xc900 + 0 - 1,
273 CUS_SIGMA33_S,
274 };
276 const ACP_Unit cus_sigma33_s[] = {
277 0xc900 + sizeof (cus_sigma33_s0) / 2 - 1,
278 CUS_SIGMA33_S,
279 };
281 // execPAIInAnalog
282 #define CUS_SIGMA34_S \
283 writeDECSourceSelectNone, \
284 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
285 writePCMChannelConfigurationProgramSurround4_1, \
286 writePCMScaleVolumeN(2*6), \
287 writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
288 writeIBEmphasisOverrideNo, \
289 writeIBPrecisionOverride24, \
290 writeIBSampleRateOverride48000Hz, \
291 writeIBSioSelectN(DEVINP_ADC1), \
292 writeDECSourceSelectPCM, \
293 0xcdf0,execPAIInAnalog
295 #pragma DATA_SECTION(cus_sigma34_s0, ".none")
296 const ACP_Unit cus_sigma34_s0[] = {
297 0xc900 + 0 - 1,
298 CUS_SIGMA34_S,
299 };
301 const ACP_Unit cus_sigma34_s[] = {
302 0xc900 + sizeof (cus_sigma34_s0) / 2 - 1,
303 CUS_SIGMA34_S,
304 };
306 // execPAIInAnalogStereo
307 #define CUS_SIGMA35_S \
308 writeDECSourceSelectNone, \
309 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
310 writePCMChannelConfigurationProgramStereoUnknown, \
311 writePCMScaleVolumeN(2*6), \
312 writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
313 writeIBEmphasisOverrideNo, \
314 writeIBPrecisionOverride24, \
315 writeIBSampleRateOverride48000Hz, \
316 writeIBSioSelectN(DEVINP_ADC_STEREO), \
317 writeDECSourceSelectPCM, \
318 0xcdf0,execPAIInAnalogStereo
320 #pragma DATA_SECTION(cus_sigma35_s0, ".none")
321 const ACP_Unit cus_sigma35_s0[] = {
322 0xc900 + 0 - 1,
323 CUS_SIGMA35_S,
324 };
326 const ACP_Unit cus_sigma35_s[] = {
327 0xc900 + sizeof (cus_sigma35_s0) / 2 - 1,
328 CUS_SIGMA35_S,
329 };
331 // execPAIInSing
332 #define CUS_SIGMA38_S \
333 writeDECSourceSelectNone, \
334 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
335 writeIBEmphasisOverrideNo, \
336 writeIBPrecisionOverride24, \
337 writeIBSampleRateOverride48000Hz, \
338 writeIBSioSelectN(DEVINP_ADC1), \
339 writeDECSourceSelectSing, \
340 0xcdf0,execPAIInSing
342 #pragma DATA_SECTION(cus_sigma38_s0, ".none")
343 const ACP_Unit cus_sigma38_s0[] = {
344 0xc900 + 0 - 1,
345 CUS_SIGMA38_S,
346 };
348 const ACP_Unit cus_sigma38_s[] = {
349 0xc900 + sizeof (cus_sigma38_s0) / 2 - 1,
350 CUS_SIGMA38_S,
351 };
353 // execPAIInHDMI
354 #define CUS_SIGMA40_S \
355 writeDECSourceSelectNone, \
356 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
357 writePCMChannelConfigurationProgramSurround4_1, \
358 writePCMScaleVolumeN(0), \
359 writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
360 writeIBUnknownTimeoutN(15*1024), \
361 writeIBScanAtHighSampleRateModeEnable, \
362 writeIBEmphasisOverrideNo, \
363 writeIBPrecisionOverride24, \
364 writeIBSampleRateOverrideStandard, \
365 writeIBSioSelectN(DEVINP_HDMI), \
366 wroteDECSourceProgramUnknown, \
367 writeDECSourceSelectAuto, \
368 0xcdf0,execPAIInHDMI
370 #pragma DATA_SECTION(cus_sigma40_s0, ".none")
371 const ACP_Unit cus_sigma40_s0[] = {
372 0xc900 + 0 - 1,
373 CUS_SIGMA40_S,
374 };
376 const ACP_Unit cus_sigma40_s[] = {
377 0xc900 + sizeof (cus_sigma40_s0) / 2 - 1,
378 CUS_SIGMA40_S,
379 };
381 // .............................................................................
382 // execPAIIn1394Stereo
383 #define CUS_SIGMA45_S \
384 writeDECSourceSelectNone, \
385 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
386 writePCMChannelConfigurationProgramStereoUnknown, \
387 writePCMScaleVolumeN(0), \
388 writeDECChannelMapFrom2(0,1), \
389 writeIBUnknownTimeoutN(8*1024), \
390 writeIBScanAtHighSampleRateModeEnable, \
391 writeIBEmphasisOverrideNo, \
392 writeIBPrecisionOverride24, \
393 writeIBSampleRateOverrideStandard, \
394 writeIBSioSelectN(DEVINP_1394_STEREO), \
395 wroteDECSourceProgramUnknown, \
396 writeDECSourceSelectAuto, \
397 0xcdf0,execPAIIn1394Stereo
399 #pragma DATA_SECTION(cus_sigma45_s0, ".none")
400 const ACP_Unit cus_sigma45_s0[] = {
401 0xc900 + 0 - 1,
402 CUS_SIGMA45_S,
403 };
405 const ACP_Unit cus_sigma45_s[] = {
406 0xc900 + sizeof (cus_sigma45_s0) / 2 - 1,
407 CUS_SIGMA45_S,
408 };
411 // execPAIIn1394
412 #define CUS_SIGMA46_S \
413 writeDECSourceSelectNone, \
414 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
415 writePCMChannelConfigurationProgramSurround4_1, \
416 writePCMScaleVolumeN(0), \
417 writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
418 writeIBUnknownTimeoutN(15*1024), \
419 writeIBScanAtHighSampleRateModeEnable, \
420 writeIBEmphasisOverrideNo, \
421 writeIBPrecisionOverride24, \
422 writeIBSampleRateOverrideStandard, \
423 writeIBSioSelectN(DEVINP_1394), \
424 wroteDECSourceProgramUnknown, \
425 writeDECSourceSelectAuto, \
426 0xcdf0,execPAIIn1394
428 #pragma DATA_SECTION(cus_sigma46_s0, ".none")
429 const ACP_Unit cus_sigma46_s0[] = {
430 0xc900 + 0 - 1,
431 CUS_SIGMA46_S,
432 };
434 const ACP_Unit cus_sigma46_s[] = {
435 0xc900 + sizeof (cus_sigma46_s0) / 2 - 1,
436 CUS_SIGMA46_S,
437 };
439 #endif // SIMULATE_SIO
442 // -----------------------------------------------------------------------------
443 //
444 // Output device configurations & shortcut definitions
445 //
447 #ifndef SIMULATE_SIO
448 const struct
449 {
450 Int n;
451 const PAF_SIO_Params *x[DEVOUT_N];
452 } patchs_devout[1] =
453 {
454 DEVOUT_N,
455 // These values reflect the definitions DEVOUT_* in pa*io_a.h:
456 NULL, // OutNone
457 (const PAF_SIO_Params *) &SAP_D10_TX_DAC, // OutAnalog
458 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_SLAVE, // OutAnalogSlave
459 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_12CH, // OutAnalog_12ch
460 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_16CH, // OutAnalog_16ch
461 };
463 #else // SIMULATE_SIO
465 const struct
466 {
467 Int n;
468 const PAF_SIO_Params *x[DEVOUT_N];
469 } patchs_devout[1] =
470 {
471 DEVOUT_N,
472 // These values reflect the definitions DEVOUT_* in pa*io_a.h:
473 NULL, // OutNone
474 (const PAF_SIO_Params *) &DAP_E17_TX_DAC, // OutAnalog
475 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_DIT, // OutDigital
476 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_DAC_SLAVE, // OutAnalogSlave
477 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_STEREO_DAC_SLAVE, // OutAnalogSlaveStereo
478 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_2STEREO_DAC_SLAVE, // OutAnalogSlave2Stereo
479 NULL, // OutRingIO
480 NULL, // OutRingIO
481 NULL, // OutRingIO
482 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_4TDM, // OutTdm4
483 NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_8TDM, // OutTdm8
484 };
486 #endif // SIMULATE_SIO
488 // .............................................................................
489 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
490 // execPAIOutNone
491 #define CUS_SIGMA48_S \
492 rb32DECSourceSelect_3, \
493 writeDECSourceSelectNone, \
494 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
495 writeOBSioSelectN(DEVOUT_NULL), \
496 wb32DECSourceSelect_3, \
497 0xcdf0,execPAIOutNone
498 #else
499 // execPAIOutNone
500 #define CUS_SIGMA48_S \
501 rb32DECSourceSelect_3, \
502 writeDECSourceSelectNone, \
503 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
504 writeOBSioSelectN(DEVOUT_NULL), \
505 writePA3Await(rb32OBSioSelect,ob32OBSioSelect(DEVOUT_NULL)), \
506 0xcdf0,execPAIOutNone
507 #endif
509 #pragma DATA_SECTION(cus_sigma48_s0, ".none")
510 const ACP_Unit cus_sigma48_s0[] = {
511 0xc900 + 0 - 1,
512 CUS_SIGMA48_S,
513 };
515 const ACP_Unit cus_sigma48_s[] = {
516 0xc900 + sizeof (cus_sigma48_s0) / 2 - 1,
517 CUS_SIGMA48_S,
518 };
520 #ifndef SIMULATE_SIO
521 // .............................................................................
522 // execPAIOutAnalog
523 #ifdef TEST_MULTICHANNEL
524 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
525 #define CUS_SIGMA49_S \
526 rb32DECSourceSelect_3, \
527 writeDECSourceSelectNone, \
528 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
529 writeOBSioSelectN(DEVOUT_DAC), \
530 writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
531 wb32DECSourceSelect_3, \
532 0xcdf0,execPAIOutAnalog
533 #else
534 #define CUS_SIGMA49_S \
535 rb32DECSourceSelect_3, \
536 writeDECSourceSelectNone, \
537 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
538 writeOBSioSelectN(DEVOUT_DAC), \
539 writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
540 wb32DECSourceSelect_3, \
541 0xcdf0,execPAIOutAnalog
542 #endif
543 #else // TEST_MULTICHANNEL
544 #define CUS_SIGMA49_S \
545 rb32DECSourceSelect_3, \
546 writeDECSourceSelectNone, \
547 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
548 writeOBSioSelectN(2), \
549 writeENCChannelMapTo16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
550 wb32DECSourceSelect_3, \
551 0xcdf0,execPAIOutAnalog
552 #endif // TEST_MULTICHANNEL
554 #else // SIMULATE_SIO
555 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
556 #define CUS_SIGMA49_S \
557 rb32DECSourceSelect_3, \
558 writeDECSourceSelectNone, \
559 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
560 writeOBSioSelectN(1), \
561 writeENCChannelMapTo16(3,7,2,6,1,5,0,4,-3,-3,-3,-3,-3,-3,-3,-3), \
562 wb32DECSourceSelect_3, \
563 0xcdf0,execPAIOutAnalog
564 #else
565 #define CUS_SIGMA49_S \
566 writeOBSioSelectN(1), \
567 writePA3Await(rb32OBSioSelect,ob32OBSioSelect(1)), \
568 writeENCChannelMapTo16(3,7,2,6,1,5,0,4,-3,-3,-3,-3,-3,-3,-3,-3), \
569 0xcdf0,execPAIOutAnalog
570 #endif
572 #endif // SIMULATE_SIO
574 #pragma DATA_SECTION(cus_sigma49_s0, ".none")
575 const ACP_Unit cus_sigma49_s0[] = {
576 0xc900 + 0 - 1,
577 CUS_SIGMA49_S,
578 };
580 const ACP_Unit cus_sigma49_s[] = {
581 0xc900 + sizeof (cus_sigma49_s0) / 2 - 1,
582 CUS_SIGMA49_S,
583 };
586 // .............................................................................
587 // execPAIOutAnalogSlave
588 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
589 #define CUS_SIGMA50_S \
590 rb32DECSourceSelect_3, \
591 writeDECSourceSelectNone, \
592 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
593 writeOBSioSelectN(DEVOUT_DAC_SLAVE), \
594 writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
595 wb32DECSourceSelect_3, \
596 0xcdf0,execPAIOutAnalogSlave
597 #else
598 #define CUS_SIGMA50_S \
599 rb32DECSourceSelect_3, \
600 writeDECSourceSelectNone, \
601 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
602 writeOBSioSelectN(DEVOUT_DAC_SLAVE), \
603 writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
604 wb32DECSourceSelect_3, \
605 0xcdf0,execPAIOutAnalogSlave
606 #endif
608 #pragma DATA_SECTION(cus_sigma50_s0, ".none")
609 const ACP_Unit cus_sigma50_s0[] = {
610 0xc900 + 0 - 1,
611 CUS_SIGMA50_S,
612 };
614 const ACP_Unit cus_sigma50_s[] = {
615 0xc900 + sizeof (cus_sigma50_s0) / 2 - 1,
616 CUS_SIGMA50_S,
617 };
619 // .............................................................................
620 // execPAIOutAnalog12Ch
621 #define CUS_SIGMA51_S \
622 rb32DECSourceSelect_3, \
623 writeDECSourceSelectNone, \
624 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
625 writeOBSioSelectN(DEVOUT_DAC_12CH), \
626 writeENCChannelMapTo16(0,6,1,7,2,8,3,9,4,10,5,11,-3,-3,-3,-3), \
627 wb32DECSourceSelect_3, \
628 0xcdf0,execPAIOutAnalog12Ch
630 #pragma DATA_SECTION(cus_sigma51_s0, ".none")
631 const ACP_Unit cus_sigma51_s0[] = {
632 0xc900 + 0 - 1,
633 CUS_SIGMA51_S,
634 };
636 const ACP_Unit cus_sigma51_s[] = {
637 0xc900 + sizeof (cus_sigma51_s0) / 2 - 1,
638 CUS_SIGMA51_S,
639 };
641 // .............................................................................
642 // execPAIOutAnalog16Ch
643 #define CUS_SIGMA52_S \
644 rb32DECSourceSelect_3, \
645 writeDECSourceSelectNone, \
646 writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
647 writeOBSioSelectN(DEVOUT_DAC_16CH), \
648 writeENCChannelMapTo16(0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15), \
649 wb32DECSourceSelect_3, \
650 0xcdf0,execPAIOutAnalog16Ch
652 #pragma DATA_SECTION(cus_sigma52_s0, ".none")
653 const ACP_Unit cus_sigma52_s0[] = {
654 0xc900 + 0 - 1,
655 CUS_SIGMA52_S,
656 };
658 const ACP_Unit cus_sigma52_s[] = {
659 0xc900 + sizeof (cus_sigma52_s0) / 2 - 1,
660 CUS_SIGMA52_S,
661 };
662 // EOF