index d50cf0d15766de1e59e51ed52729a409e6c54b69..ca43abc4f96b05fc42dbdfda4cec0f0f1ecbdf4f 100644 (file)
#ifndef IO_CONFIG_H
#define IO_CONFIG_H
-#define PASDK_SIO_DEV // define this to use the legacy SIO/DEV based I/O driver
+//#define PASDK_SIO_DEV // define this to use the legacy SIO/DEV based I/O driver
-//#define IO_LOOPBACK_TEST // define this to run a loopback test bypassing PASDK processing
+//#define IO_LOOPBACK_TEST // define this to run a DSP-only standalone loopback test without PASDK framework
+//#define PCM_LOOPBACK_TEST // define this to run DSP-only PCM loopback test in PASDK framework
#define INPUT_HDMI_4xI2S // HDMI, 4 Rx serializers
//#define INPUT_HDMI_STEREO // HDMI, 1 Rx serializer
//#define INPUT_PCM_ONLY // debugging, input fixed to PCM
+#ifdef INPUT_PCM_ONLY
+#define SWAP_INPUT_DATA FALSE
+#else
+#define SWAP_INPUT_DATA TRUE
+#endif
+
#ifdef INPUT_HDMI_4xI2S
#define RX_MCASP_USE_MULT_SER
#define TX_MCASP_USE_MULT_SER // This is the normal operation. Undefine this for debugging and loopback
+#define IO_HW_INTERFACE 2
//#define ASIP_ELEMENT_SIZE 2
//#define ASIP_STRIDE 8 // 4 lane, stereo
#endif
#ifdef INPUT_HDMI_STEREO
//#define ASIP_ELEMENT_SIZE 4
//#define ASIP_STRIDE 2 // 1 lane, stereo
+#define IO_HW_INTERFACE 1
#endif
#ifdef INPUT_SPDIF
//#define ASIP_ELEMENT_SIZE 4
//#define ASIP_STRIDE 2 // 1 lane, stereo
+#define IO_HW_INTERFACE 3
#endif
// two options regarding I/O PHY transfer size and I/O DATA read size:
// Define McASP transfer element size: number of bytes in one word
#define WORD_SIZE_BITSTREAM 2
#define WORD_SIZE_PCM 4
+#define NUM_CYCLE_PER_FRAME 128
// Input frame length: number of words to be transfered in 1 transfer of McASP LLD Rx
// These numbers are according to existing SIO/DEV based I/O.
+#define INPUT_STRIDE (2*NUM_RX_SERIALIZER)
#ifdef INPUT_HDMI_4xI2S
-#define INPUT_FRAME_LENGTH (256*NUM_RX_SERIALIZER) // 128 stereo/lane
+#define INPUT_FRAME_LENGTH (NUM_CYCLE_PER_FRAME*INPUT_STRIDE) // 128 stereo/lane
#else
-//#define INPUT_FRAME_LENGTH (128*NUM_RX_SERIALIZER) // 64 stereo/lane
-#define INPUT_FRAME_LENGTH (256*NUM_RX_SERIALIZER) // 128 stereo/lane
+//#define INPUT_FRAME_LENGTH (64*INPUT_STRIDE) // 64 stereo/lane
+#define INPUT_FRAME_LENGTH (NUM_CYCLE_PER_FRAME*INPUT_STRIDE) // 128 stereo/lane
#endif
// Input frame size: number of bytes to be transfered in 1 transfer of McASP LLD Rx
#define INPUT_FRAME_SIZE_PCM (INPUT_FRAME_LENGTH * WORD_SIZE_PCM)
// Output frame length: number of words to be transfered in 1 transfer of McASP LLD Tx
-#define OUTPUT_FRAME_LENGTH (256*NUM_TX_SERIALIZER) // 128 stereo/lane
+#define OUTPUT_STRIDE (2*NUM_TX_SERIALIZER)
+#define OUTPUT_FRAME_LENGTH (NUM_CYCLE_PER_FRAME*OUTPUT_STRIDE) // 128 stereo/lane
// Output frame size: number of bytes to be transfered in 1 transfer of McASP LLD Tx
#define OUTPUT_FRAME_SIZE (OUTPUT_FRAME_LENGTH * WORD_SIZE_PCM)