You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/04/21 23:20:04 UTC

[incubator-nuttx] 03/06: cxd56: disable unused audio effects

This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 7a83177419147d74e812eccc50141cf9ac41ce3b
Author: Tobias Johansson <to...@sony.com>
AuthorDate: Fri Apr 17 15:42:31 2020 +0200

    cxd56: disable unused audio effects
    
    Disables audio effects that are not currently in use.
    Also fixes some minor indentation issues.
---
 drivers/audio/cxd56.c | 72 ++++++++++++++++++++++++++-------------------------
 1 file changed, 37 insertions(+), 35 deletions(-)

diff --git a/drivers/audio/cxd56.c b/drivers/audio/cxd56.c
index f7f7289..579cc24 100644
--- a/drivers/audio/cxd56.c
+++ b/drivers/audio/cxd56.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * drivers/audio/cxd56.h
+ * drivers/audio/cxd56.c
  *
  *   Copyright 2019 Sony Semiconductor Solutions Corporation
  *
@@ -1006,29 +1006,29 @@ static void cxd56_set_volume(enum cxd56_vol_id_e id, int16_t vol, bool fade)
     }
 
   switch (id)
-  {
-    case CXD56_VOL_ID_MIXER_IN1:
-      write_reg(REG_AC_SDIN1_VOL, vol);
-      break;
-    case CXD56_VOL_ID_MIXER_IN2:
-      write_reg(REG_AC_SDIN2_VOL, vol);
-      break;
-    case CXD56_VOL_ID_MIXER_OUT:
-      write_reg(REG_AC_DAC_VOL, vol);
-      break;
-  }
+    {
+      case CXD56_VOL_ID_MIXER_IN1:
+        write_reg(REG_AC_SDIN1_VOL, vol);
+        break;
+      case CXD56_VOL_ID_MIXER_IN2:
+        write_reg(REG_AC_SDIN2_VOL, vol);
+        break;
+      case CXD56_VOL_ID_MIXER_OUT:
+        write_reg(REG_AC_DAC_VOL, vol);
+        break;
+    }
 
   waittime = (fade ? CXD56_VOL_MUTE_TIME(vol, 1) : CXD56_VOL_WAIT_TIME);
 
   nxsig_usleep(waittime);
 
   if (vol == CXD56_VOL_MUTE_REG)
-  {
-    /* Disable analog out */
+    {
+      /* Disable analog out */
 
-    as_aca_control(CXD56_ACA_CTL_SET_OUTPUT_DEVICE,
-                   (uint32_t)CXD56_OUT_DEV_OFF);
-  }
+      as_aca_control(CXD56_ACA_CTL_SET_OUTPUT_DEVICE,
+                     (uint32_t)CXD56_OUT_DEV_OFF);
+    }
 }
 
 static void cxd56_init_i2s1_output(uint8_t bits)
@@ -1321,8 +1321,27 @@ static uint32_t cxd56_power_on(FAR struct cxd56_dev_s *dev)
 
       write_reg(REG_I2S_ENSEL, (dev->samplerate > 48000) ? 1 : 0);
 
-      /* TODO: alc, cstereo, dnc, deq, vol & datapath (reset mic */
+      /* Disable DEQ */
+      write_reg(REG_AC_DEQ_EN, 0);
+
+      /* Disable DNC. */
 
+      write_reg(REG_AC_DNC1_MUTE, 1);
+      write_reg(REG_AC_DNC2_MUTE, 1);
+      write_reg(REG_AC_DNC1_START, 0);
+      write_reg(REG_AC_DNC2_START, 0);
+
+      /* Disable ALC/SPC */
+
+      write_reg(REG_AC_ALC_EN, 0);
+      write_reg(REG_AC_SPC_EN, 0);
+
+      /* Disable Clear Stereo */
+
+      write_reg(REG_AC_CS_SIGN, 0);
+      write_reg(REG_AC_CS_VOL, 0x00);
+
+      /* Attach interrupts */
       cxd56_attach_irq(true);
       cxd56_enable_irq(true);
     }
@@ -1337,25 +1356,10 @@ static uint32_t cxd56_power_off(FAR struct cxd56_dev_s *dev)
 {
   audinfo("cxd56_power_off\n");
 
-  /* Codec block. */
-
   /* Disable AHBMASTER. */
 
   write_reg(REG_AC_MCK_AMBMSTR_EN, 0);
 
-  /* Disable CODEC. */
-
-  write_reg(REG_AC_ALC_EN, 0);
-  write_reg(REG_AC_SPC_EN, 0);
-  write_reg(REG_AC_DEQ_EN, 0);
-
-  /* Disable DNC. */
-
-  write_reg(REG_AC_DNC1_MUTE, 1);
-  write_reg(REG_AC_DNC2_MUTE, 1);
-  write_reg(REG_AC_DNC1_START, 0);
-  write_reg(REG_AC_DNC2_START, 0);
-
   /* Disable SRC. */
 
   write_reg(REG_AC_SDIN1_EN, 0);
@@ -1387,8 +1391,6 @@ static uint32_t cxd56_power_off(FAR struct cxd56_dev_s *dev)
   write_reg(REG_AC_PDN_DNC2, 1);
   write_reg(REG_AC_PDN_ANC, 1);
 
-  /* Analog block. */
-
   /* Disable audio clock */
 
   cxd56_audio_clock_disable();