Fixed loss of SYNC problem and restart problem. ASIT FSM works fine with
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / io / ioConfig.h
2 #ifndef IO_CONFIG_H
3 #define IO_CONFIG_H
5 //#define PASDK_SIO_DEV         // define this to use the legacy SIO/DEV based I/O driver
7 //#define IO_LOOPBACK_TEST        // define this to run a DSP-only standalone loopback test without PASDK framework
8 //#define PCM_LOOPBACK_TEST       // define this to run DSP-only PCM loopback test in PASDK framework
10 #define INPUT_HDMI_4xI2S        // HDMI, 4 Rx serializers
11 //#define INPUT_HDMI_STEREO       // HDMI, 1 Rx serializer
12 //#define INPUT_SPDIF             // S/PDIF, 1 Rx serializer
14 //#define INPUT_PCM_ONLY        // debugging, input fixed to PCM
16 #ifdef INPUT_PCM_ONLY
17 #define SWAP_INPUT_DATA        FALSE
18 #else
19 #define SWAP_INPUT_DATA        TRUE
20 #endif
22 #ifdef INPUT_HDMI_4xI2S
23 #define RX_MCASP_USE_MULT_SER
24 #define TX_MCASP_USE_MULT_SER   // This is the normal operation. Undefine this for debugging and loopback
25 #define IO_HW_INTERFACE          2
26 //#define ASIP_ELEMENT_SIZE      2
27 //#define ASIP_STRIDE            8    // 4 lane, stereo
28 #endif
30 #ifdef INPUT_HDMI_STEREO
31 //#define ASIP_ELEMENT_SIZE      4
32 //#define ASIP_STRIDE            2    // 1 lane, stereo
33 #define IO_HW_INTERFACE          1
34 #endif
36 #ifdef INPUT_SPDIF
37 //#define ASIP_ELEMENT_SIZE      4
38 //#define ASIP_STRIDE            2    // 1 lane, stereo
39 #define IO_HW_INTERFACE          3
40 #endif
42 // two options regarding I/O PHY transfer size and I/O DATA read size:
43 //    1. fixed to 1024 words: simple for implementation and debugging, shorter delay,
44 //            but more interrupts and more McASP LLD calls.
45 //    2. adjusted to frame size after auto-detection: less interrupts and McASP LLD calls,
46 //            but more complicated implementation and longer delay.
47 #define ADJUST_XFER_SIZE_AFTER_AUTODET
50 // Number of serializers configured for Rx McASP
51 #ifdef RX_MCASP_USE_MULT_SER
52 #define NUM_RX_SERIALIZER       4
53 #else
54 #define NUM_RX_SERIALIZER       1
55 #endif
57 // Number of serializers configured for Tx McASP
58 #ifdef TX_MCASP_USE_MULT_SER
59 #define NUM_TX_SERIALIZER       4
60 #else
61 #define NUM_TX_SERIALIZER       1
62 #endif
64 /* Number of submitted transfers in McASP LLD priming operation.
65  * Due to McASP LLD issue, there must be 3 or more transfer submits in priming.  */
66 #define NUM_PRIME_XFERS         3   // 3 and above is good
68 // Define McASP transfer element size: number of bytes in one word
69 #define WORD_SIZE_BITSTREAM     2
70 #define WORD_SIZE_PCM           4
71 #define NUM_CYCLE_PER_FRAME_DEF     1024 //128
73 // Input frame length: number of words to be transfered in 1 transfer of McASP LLD Rx
74 // These numbers are according to existing SIO/DEV based I/O.
75 #define INPUT_STRIDE            (2*NUM_RX_SERIALIZER)
76 #ifdef INPUT_HDMI_4xI2S
77 #define INPUT_FRAME_LENGTH      (NUM_CYCLE_PER_FRAME_DEF*INPUT_STRIDE)      // 128 stereo/lane
78 #else
79 //#define INPUT_FRAME_LENGTH      (64*INPUT_STRIDE)    // 64 stereo/lane
80 #define INPUT_FRAME_LENGTH      (NUM_CYCLE_PER_FRAME_DEF*INPUT_STRIDE)      // 128 stereo/lane
81 #endif
83 // Input frame size: number of bytes to be transfered in 1 transfer of McASP LLD Rx
84 #define INPUT_FRAME_SIZE_DEF    (INPUT_FRAME_LENGTH * WORD_SIZE_BITSTREAM)
85 #define INPUT_FRAME_SIZE_PCM    (INPUT_FRAME_LENGTH * WORD_SIZE_PCM)
87 // Output frame length: number of words to be transfered in 1 transfer of McASP LLD Tx
88 #define OUTPUT_STRIDE           (2*NUM_TX_SERIALIZER)
89 #define OUTPUT_FRAME_LENGTH     (NUM_CYCLE_PER_FRAME_DEF*OUTPUT_STRIDE)    // 128 stereo/lane
91 // Output frame size: number of bytes to be transfered in 1 transfer of McASP LLD Tx
92 #define OUTPUT_FRAME_SIZE       (OUTPUT_FRAME_LENGTH * WORD_SIZE_PCM)
96 #endif