Replaced hard coded OUTPUT_STRIDE with configured stride = num_serializer*num_channel.
[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 #define TX_MCASP_USE_MULT_SER   // This is the normal operation. Undefine this for debugging and loopback
18 #ifdef INPUT_PCM_ONLY
19 #define SWAP_INPUT_DATA        FALSE
20 #else
21 #define SWAP_INPUT_DATA        TRUE
22 #endif
24 #ifdef INPUT_HDMI_4xI2S
25 #define RX_MCASP_USE_MULT_SER
26 #define IO_HW_INTERFACE          2
27 //#define ASIP_ELEMENT_SIZE      2
28 //#define ASIP_STRIDE            8    // 4 lane, stereo
29 #endif
31 #ifdef INPUT_HDMI_STEREO
32 //#define ASIP_ELEMENT_SIZE      4
33 //#define ASIP_STRIDE            2    // 1 lane, stereo
34 #define IO_HW_INTERFACE          1
35 #endif
37 #ifdef INPUT_SPDIF
38 //#define ASIP_ELEMENT_SIZE      4
39 //#define ASIP_STRIDE            2    // 1 lane, stereo
40 #define IO_HW_INTERFACE          3
41 #endif
43 // two options regarding I/O PHY transfer size and I/O DATA read size:
44 //    1. fixed to 1024 words: simple for implementation and debugging, shorter delay,
45 //            but more interrupts and more McASP LLD calls.
46 //    2. adjusted to frame size after auto-detection: less interrupts and McASP LLD calls,
47 //            but more complicated implementation and longer delay.
48 #define ADJUST_XFER_SIZE_AFTER_AUTODET
51 // Number of serializers configured for Rx McASP
52 #ifdef RX_MCASP_USE_MULT_SER
53 #define NUM_RX_SERIALIZER       4
54 #else
55 #define NUM_RX_SERIALIZER       1
56 #endif
58 // Number of serializers configured for Tx McASP
59 #ifdef TX_MCASP_USE_MULT_SER
60 #define NUM_TX_SERIALIZER       4
61 #else
62 #define NUM_TX_SERIALIZER       1
63 #endif
65 /* Number of submitted transfers in McASP LLD priming operation.
66  * Due to McASP LLD issue, there must be 3 or more transfer submits in priming.  */
67 #define NUM_PRIME_XFERS         3   // 3 and above is good
69 // Define McASP transfer element size: number of bytes in one word
70 #define WORD_SIZE_BITSTREAM     2
71 #define WORD_SIZE_PCM           4
72 #define NUM_CYCLE_PER_FRAME_DEF     1024 //128
74 // Input frame length: number of words to be transfered in 1 transfer of McASP LLD Rx
75 // These numbers are according to existing SIO/DEV based I/O.
76 #define INPUT_STRIDE            (2*NUM_RX_SERIALIZER)
77 #ifdef INPUT_HDMI_4xI2S
78 #define INPUT_FRAME_LENGTH      (NUM_CYCLE_PER_FRAME_DEF*INPUT_STRIDE)      // 128 stereo/lane
79 #else
80 //#define INPUT_FRAME_LENGTH      (64*INPUT_STRIDE)    // 64 stereo/lane
81 #define INPUT_FRAME_LENGTH      (NUM_CYCLE_PER_FRAME_DEF*INPUT_STRIDE)      // 128 stereo/lane
82 #endif
84 // Input frame size: number of bytes to be transfered in 1 transfer of McASP LLD Rx
85 #define INPUT_FRAME_SIZE_DEF    (INPUT_FRAME_LENGTH * WORD_SIZE_BITSTREAM)
86 #define INPUT_FRAME_SIZE_PCM    (INPUT_FRAME_LENGTH * WORD_SIZE_PCM)
88 // Output frame length: number of words to be transfered in 1 transfer of McASP LLD Tx
89 #define OUTPUT_STRIDE           (2*NUM_TX_SERIALIZER)
90 #define OUTPUT_FRAME_LENGTH     (NUM_CYCLE_PER_FRAME_DEF*OUTPUT_STRIDE)    // 128 stereo/lane
92 // Output frame size: number of bytes to be transfered in 1 transfer of McASP LLD Tx
93 #define OUTPUT_FRAME_SIZE       (OUTPUT_FRAME_LENGTH * WORD_SIZE_PCM)
97 #endif