realtime_demo_bios: fix the PCM1864 DOUT2 does not working issue
[processor-sdk/audio-preprocessing.git] / realtime_demo_bios / k2g / src / main.c
index 260b2a30df7ee226f672b21966d519553c6344ce..9c3f34bff93fd8bde6df3fdf4dca70c2db0c0c3b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2015, Texas Instruments Incorporated\r
+ * Copyright (c) 2017, Texas Instruments Incorporated\r
  * All rights reserved.\r
  *\r
  * Redistribution and use in source and binary forms, with or without\r
 sysConfig_t sysConfig = {\r
   SYS_MICS_MAX,   /* #microphones */\r
   SYS_VMICS_MAX,  /* #virtual microphones */\r
+  5,              /* 5ms ASNR delay */\r
+  { 12, 9, 6},    /* ASNR band1=12dB, band2=9dB, band3=6dB */\r
+  TRUE,           /* Enable ASNR */\r
   FALSE,          /* Do not use file I/O to load files (must use GEL to load into memory) */\r
-  TRUE            /* Use default angles for microphone configurations */\r
+  TRUE,           /* Use default angles for microphone configurations */\r
+  FALSE,           /* Enable VAD */\r
+  -50,            /* drc expansion knee point in dBm0 (dBFS is dBm0-3dB */\r
+  6,              /* drc max gain in dB */\r
+  FALSE           /* Disable DRC */\r
 };\r
 \r
 /* Global FILE I/O Configuration Structure (must be configured even when file I/O not used */\r
@@ -133,28 +140,28 @@ static void system_init(void)
 } /* system_init */\r
 \r
 /* ADC default configuration parameters */\r
-Cmbk2gAdcConfig adcCfg =\r
+CmbAdcConfig adcCfg =\r
 {\r
        80,                  /* ADC gain */\r
-       CMBK2G_ADC_INL_SE_VINL1,    /* Left input mux for ADC1L */\r
-       CMBK2G_ADC_INL_SE_VINL2,    /* Left input mux for ADC2L */\r
-       CMBK2G_ADC_INR_SE_VINR1,    /* Right input mux for ADC1R */\r
-       CMBK2G_ADC_INR_SE_VINR2,    /* Right input mux for ADC2R */\r
-       CMBK2G_ADC_RX_WLEN_24BIT,   /* ADC word length */\r
-       CMBK2G_ADC_DATA_FORMAT_I2S, /* ADC data format */\r
+       CMB_ADC_INL_SE_VINL1,    /* Left input mux for ADC1L */\r
+       CMB_ADC_INL_SE_VINL3,    /* Left input mux for ADC2L */\r
+       CMB_ADC_INR_SE_VINR1,    /* Right input mux for ADC1R */\r
+       CMB_ADC_INR_SE_VINR3,    /* Right input mux for ADC2R */\r
+       CMB_ADC_RX_WLEN_24BIT,   /* ADC word length */\r
+       CMB_ADC_DATA_FORMAT_I2S, /* ADC data format */\r
        0\r
 };\r
 \r
 /* DAC default configuration parameters */\r
-Cmbk2gDacConfig  dacCfg =\r
+CmbDacConfig  dacCfg =\r
 {\r
-       CMBK2G_DAC_AMUTE_CTRL_SCKI_LOST,   /* Amute event */\r
+       CMB_DAC_AMUTE_CTRL_SCKI_LOST,   /* Amute event */\r
        0,                          /* Amute control */\r
-       CMBK2G_DAC_SAMPLING_MODE_AUTO,     /* Sampling mode */\r
-       CMBK2G_DAC_DATA_FORMAT_I2S,        /* Data format */\r
+       CMB_DAC_SAMPLING_MODE_AUTO,     /* Sampling mode */\r
+       CMB_DAC_DATA_FORMAT_I2S,        /* Data format */\r
        0,                          /* Soft mute control */\r
-       CMBK2G_DAC_ATTENUATION_WIDE_RANGE, /* Attenuation mode */\r
-       CMBK2G_DAC_DEEMP_44KHZ,            /* De-emph control */\r
+       CMB_DAC_ATTENUATION_WIDE_RANGE, /* Attenuation mode */\r
+       CMB_DAC_DEEMP_44KHZ,            /* De-emph control */\r
        80                          /* Volume */\r
 };\r
 \r
@@ -180,27 +187,6 @@ void pinMuxSetMode_local(uint32_t padCfgId, PadCfgMuxMode muxMode)
     CSL_FINS(*(padCfgBase + padCfgId), BOOTCFG_PADCONFIG0_MUXMODE, muxMode);\r
 }\r
 \r
-char write_buffer[MAX_WRITE_LEN];\r
-void cmbk2g_write(const char *fmt, ... )\r
-{\r
-       va_list         arg_ptr;\r
-       uint32_t        length;\r
-\r
-       /* Initial platform_write to temporary buffer.. at least try some sort of sanity check so we don't write all over\r
-        * memory if the print is too large.\r
-        */\r
-       if (strlen(fmt) > MAX_WRITE_LEN) {return;}\r
-\r
-       va_start( arg_ptr, fmt );\r
-       length = vsprintf( (char *)write_buffer, fmt, arg_ptr );\r
-       va_end( arg_ptr );\r
-\r
-       printf( "%s", write_buffer );\r
-       //fflush(stdout);\r
-\r
-       return;\r
-}\r
-\r
 void McaspDevice_init(void);\r
 \r
 /**\r
@@ -210,9 +196,9 @@ void McaspDevice_init(void);
  *  which are required for audio processing. Need to call this function\r
  *  before doing any HW related operations.\r
  *\r
- *  \return    Cmbk2g_EOK on Success or error code\r
+ *  \return    Cmb_EOK on Success or error code\r
  */\r
-Cmbk2g_STATUS initPlatform(void)\r
+Cmb_STATUS initPlatform(void)\r
 {\r
        Board_STATUS status = BOARD_SOK;\r
        Board_initCfg arg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK;\r
@@ -244,11 +230,11 @@ Cmbk2g_STATUS initPlatform(void)
        ///gpioSetOutput(GPIO_PORT_1, 54);\r
 \r
        /* Configure platform log messages to standard printf */\r
-    ///Cmbk2g_write_configure(Cmbk2g_WRITE_UART);\r
+    ///Cmb_write_configure(Cmb_WRITE_UART);\r
 \r
     /* Initialize UART */\r
-    ///Cmbk2g_uart_init();\r
-    ///Cmbk2g_uart_set_baudrate(115200);\r
+    ///Cmb_uart_init();\r
+    ///Cmb_uart_set_baudrate(115200);\r
 \r
     return(status);\r
 }\r
@@ -260,16 +246,16 @@ Cmbk2g_STATUS initPlatform(void)
  */\r
 void main (void)\r
 {\r
-       Cmbk2g_STATUS status;\r
+       Cmb_STATUS status;\r
 \r
        status = initPlatform();\r
-       if(status != Cmbk2g_EOK)\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("Platform Init Failed!\n");\r
+               cmb_write("Platform Init Failed!\n");\r
                testRet(1);\r
        }\r
 \r
-       cmbk2g_delay(10000);\r
+       cmb_delay(10000);\r
 \r
 \r
        system_init();      /* initialize system context, etc. */\r
@@ -277,56 +263,66 @@ void main (void)
        sysBfCreate();      /* Create beamformers */\r
        sysAsnrCreate();    /* Create ASNR's */\r
        sysMssCreate();     /* Create MSS */\r
+#if (SYS_USE_DRC)\r
+       sysDrcCreate();     /* Create DRC */\r
+#endif\r
        ///sysVauCreate();     /* Create VAU */\r
 \r
 \r
-       cmbk2g_write("\n******************************************\n");\r
-       cmbk2g_write(  "        CMB Analog Loopback Test          \n");\r
-    cmbk2g_write(  "******************************************\n");\r
+       cmb_write("\n******************************************\n");\r
+       cmb_write(  "        CMB Analog Loopback Test          \n");\r
+    cmb_write(  "******************************************\n");\r
 \r
-    cmbk2g_write("\nTest Verifies ADC and DAC Channels\n");\r
-       cmbk2g_write("Test Runs in Audio Loopback Mode\n");\r
-       cmbk2g_write("Confirm that CMB Mic 1 and Mic 8 Input are Played at On-Board Line-Out Left and Right Channels\n");\r
+    cmb_write("\nTest Verifies ADC and DAC Channels\n");\r
+       cmb_write("Test Runs in Audio Loopback Mode\n");\r
+       cmb_write("Confirm that CMB Mic 1 and Mic 8 Input are Played at On-Board Line-Out Left and Right Channels\n");\r
 \r
        /* Initialize McASP HW details */\r
        McaspDevice_init();\r
 \r
        /* Configure eDMA module */\r
        status = eDmaConfig();\r
-       if(status != Cmbk2g_EOK)\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("eDMA Configuration Failed!\n");\r
+               cmb_write("eDMA Configuration Failed!\n");\r
                testRet(1);\r
        }\r
 \r
        /* Initialize common audio configurations */\r
-       status = (Cmbk2g_STATUS)cmbk2g_AudioInit();\r
-       if(status != Cmbk2g_EOK)\r
+       status = (Cmb_STATUS)cmb_AudioInit();\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("Audio Init Failed!\n");\r
+               cmb_write("Audio Init Failed!\n");\r
                testRet(1);\r
        }\r
 \r
+       /* reset Audio ADC module 0 */\r
+       status = cmb_AudioAdcReset(CMB_ADC_DEVICE_0);\r
+       cmb_delay(10000);\r
+       /* reset Audio ADC module 1 */\r
+       status = cmb_AudioAdcReset(CMB_ADC_DEVICE_1);\r
+       cmb_delay(10000);\r
+\r
        /* Initialize Audio ADC module */\r
-       status = audioAdcConfig(CMBK2G_ADC_DEVICE_0, &adcCfg);\r
-       if(status != Cmbk2g_EOK)\r
+       status = audioAdcConfig(CMB_ADC_DEVICE_0, &adcCfg);\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("Audio ADC0 Configuration Failed!\n");\r
+               cmb_write("Audio ADC0 Configuration Failed!\n");\r
                testRet(1);\r
        }\r
 \r
-       status = audioAdcConfig(CMBK2G_ADC_DEVICE_1, &adcCfg);\r
-       if(status != Cmbk2g_EOK)\r
+       status = audioAdcConfig(CMB_ADC_DEVICE_1, &adcCfg);\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("Audio ADC1 Configuration Failed!\n");\r
+               cmb_write("Audio ADC1 Configuration Failed!\n");\r
                testRet(1);\r
        }\r
 \r
        /* Initialize McASP module */\r
        status = mcaspAudioConfig();\r
-       if(status != Cmbk2g_EOK)\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("McASP Configuration Failed!\n");\r
+               cmb_write("McASP Configuration Failed!\n");\r
                testRet(1);\r
        }\r
 \r
@@ -339,16 +335,16 @@ void main (void)
  *\r
  *  \return    none\r
  */\r
-#if CMBK2G_AUDIO_DAC\r
+#if CMB_AUDIO_DAC\r
 void configAudioDAC(void)\r
 {\r
-       Cmbk2g_STATUS status;\r
+       Cmb_STATUS status;\r
 \r
        /* Initialize Audio DAC0 module */\r
-       status = audioDacConfig(CMBK2G_DAC_DEVICE_0, &dacCfg);\r
-       if(status != Cmbk2g_EOK)\r
+       status = audioDacConfig(CMB_DAC_DEVICE_0, &dacCfg);\r
+       if(status != Cmb_EOK)\r
        {\r
-               cmbk2g_write("Audio DAC0 Configuration Failed!\n");\r
+               cmb_write("Audio DAC0 Configuration Failed!\n");\r
                testRet(1);\r
        }\r
 }\r