[alsa-devel] [PATCH 2/4] ASoC: ak5702: register list of ak5702

Paolo Doz paolo.doz at gmail.com
Mon Oct 29 09:44:05 CET 2012


This header file defines the list and possible values of ak5702 registers.

Signed-off-by: Paolo Doz <paolo.doz at gmail.com>
---
 sound/soc/codecs/ak5702.h |  164
+++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 164 insertions(+)
 create mode 100644 sound/soc/codecs/ak5702.h

diff --git a/sound/soc/codecs/ak5702.h b/sound/soc/codecs/ak5702.h
new file mode 100644
index 0000000..b214350
--- /dev/null
+++ b/sound/soc/codecs/ak5702.h
@@ -0,0 +1,164 @@
+/*
+ * ak5702.h  --  AK5702 ALSA SoC driver
+ *
+ * Author:      Paolo Doz <paolo.doz at gmail.com>
+ * Copyright:   (C) 2012 Soft In S.r.l.
+ *                  2009 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This code comes from the original Freescale Ak5702 Audio driver
+ */
+
+#ifndef _AK5702_H
+#define _AK5702_H
+
+/* AK5702 register space */
+
+#define AK5702_PM1        0x00
+#define AK5702_PLL1        0x01
+#define AK5702_SIG1        0x02
+#define AK5702_MICG1        0x03
+#define AK5702_FMT1        0x04
+#define AK5702_FS1        0x05
+#define AK5702_CLK1        0x06
+#define AK5702_VOLCTRL1        0x07
+#define AK5702_LVOL1        0x08
+#define AK5702_RVOL1        0x09
+#define AK5702_TIMER1        0x0A
+#define AK5702_ALC11        0x0B
+#define AK5702_ALC12        0x0C
+#define AK5702_MODE11        0x0D
+#define AK5702_MODE12        0x0E
+#define AK5702_MODE13        0x0F
+
+#define AK5702_PM2        0x10
+#define AK5702_PLL2        0x11
+#define AK5702_SIG2        0x12
+#define AK5702_MICG2        0x13
+#define AK5702_FMT2        0x14
+#define AK5702_FS2        0x15
+#define AK5702_CLK2        0x16
+#define AK5702_VOLCTRL2        0x17
+#define AK5702_LVOL2        0x18
+#define AK5702_RVOL2        0x19
+#define AK5702_TIMER2        0x1A
+#define AK5702_ALC21        0x1B
+#define AK5702_ALC22        0x1C
+#define AK5702_MODE21        0x1D
+#define AK5702_MODE22        0x1E
+
+#define AK5702_CACHEREGNUM    0x1F
+
+#define AK5702_POWERDOWN    0x0
+#define AK5702_PM1_PMADAL    0x01
+#define AK5702_PM1_PMADAR    0x02
+#define AK5702_PM1_PMVCM    0x04
+#define AK5702_PM2_PMADBL    0x01
+#define AK5702_PM2_PMADBR    0x02
+
+#define AK5702_PLL1_POWERDOWN    0x0
+#define AK5702_PLL1_POWERUP    0x01
+#define AK5702_PLL1_MASTER    0x02
+#define AK5702_PLL1_SLAVE    0x0
+#define AK5702_PLL1_MODE0    0x0
+#define AK5702_PLL1_MODE2    0x08
+#define AK5702_PLL1_MODE3    0x0C
+#define AK5702_PLL1_MODE4    0x10
+#define AK5702_PLL1_MODE5    0x14
+#define AK5702_PLL1_MODE6    0x18
+#define AK5702_PLL1_MODE7    0x1C
+#define AK5702_PLL1_MODE8    0x20
+#define AK5702_PLL1_MODE9    0x24
+#define AK5702_PLL1_MODE12    0x30
+#define AK5702_PLL1_MODE13    0x34
+#define AK5702_PLL1_MODE14    0x38
+#define AK5702_PLL1_MODE15    0x3C
+#define AK5702_PLL1_11289600    0x10
+#define AK5702_PLL1_12000000    0x24
+#define AK5702_PLL1_12288000    0x14
+#define AK5702_PLL1_19200000    0x20
+
+#define AK5702_FS1_MCKI_MODE0    0x0
+#define AK5702_FS1_MCKI_MODE1    0x01
+#define AK5702_FS1_MCKI_MODE2    0x02
+#define AK5702_FS1_MCKI_MODE3    0x03
+#define AK5702_FS1_MCKI_MODE4    0x04
+#define AK5702_FS1_MCKI_MODE5    0x05
+#define AK5702_FS1_MCKI_MODE6    0x06
+#define AK5702_FS1_MCKI_MODE7    0x07
+#define AK5702_FS1_MCKI_MODE10    0x0A
+#define AK5702_FS1_MCKI_MODE11    0x0B
+#define AK5702_FS1_MCKI_MODE14    0x0E
+#define AK5702_FS1_MCKI_MODE15    0x0F
+
+#define AK5702_FS1_BCLK_MODE0    0x0
+#define AK5702_FS1_BCLK_MODE1    0x04
+#define AK5702_FS1_BCLK_MODE2    0x08
+
+#define AK5702_FS1_SLAVE_1024FS    0x01
+#define AK5702_FS1_SLAVE_512FS    0x02
+#define AK5702_FS1_SLAVE_256FS    0x03
+
+#define AK5702_SIG1_L_LIN1    0x0
+#define AK5702_SIG1_L_LIN2    0x01
+#define AK5702_SIG1_R_RIN1    0x0
+#define AK5702_SIG1_R_RIN2    0x02
+#define AK5702_SIG1_PMMPA    0x10
+#define AK5702_SIG1_L_LIN5    0x20
+#define AK5702_SIG1_R_RIN5    0x40
+#define AK5702_SIG2_L_LIN3    0x0
+#define AK5702_SIG2_L_LIN4    0x01
+#define AK5702_SIG2_R_RIN3    0x0
+#define AK5702_SIG2_R_RIN4    0x02
+#define AK5702_SIG2_PMMPB    0x10
+
+#define AK5702_MICGAIN_0DB    0x0
+
+#define AK5702_FMT1_I2S        0x23
+#define AK5702_FMT1_MSB        0x22
+#define AK5702_FMT1_TDM128    0x60
+#define AK5702_FMT1_TDM256    0xE0
+#define AK5702_FMT2_STEREO    0x20
+#define AK5702_FS1_BCKO_32FS    0x10
+#define AK5702_FS1_BCKO_64FS    0x20
+#define AK5702_CLK1_PS_256FS    0x0
+#define AK5702_CLK1_PS_128FS    0x01
+#define AK5702_CLK1_PS_64FS    0x02
+#define AK5702_CLK1_PS_32FS    0x03
+#define AK5702_VOLCTRL_INDEP    0x0
+#define AK5702_VOLCTRL_DEP    0x01
+#define AK5702_VOL_INIT        0x91
+
+#define AK5702_PLL1_PM_MASK    0x01
+#define AK5702_PLL1_MODE_MASK    0x02
+#define AK5702_PLL1_PLL_MASK    0x3C
+#define AK5702_FS1_BCKO_MASK    0x30
+#define AK5702_FS1_FS_MASK    0x0F
+#define AK5702_CLK1_PS_MASK    0x03
+#define AK5702_FMT1_TDM_MASK    0xC0
+/* clock divider id */
+#define AK5702_BCLK_CLKDIV    0
+#define AK5702_MCLK_CLKDIV    1
+
+/* bit clock div values */
+#define AK5702_BCLK_DIV_32    0
+#define AK5702_BCLK_DIV_64    1
+
+/* m clock div values */
+#define AK5702_MCLK_DIV_32    0
+#define AK5702_MCLK_DIV_64    1
+#define AK5702_MCLK_DIV_128    2
+#define AK5702_MCLK_DIV_256    3
+
+/* PLL master and slave modes */
+#define AK5702_PLL_POWERDOWN    0
+#define AK5702_PLL_MASTER    1
+#define AK5702_PLL_SLAVE    2
+
+extern struct snd_soc_dai_driver ak5702_dai;
+extern struct snd_soc_codec_driver soc_codec_dev_ak5702;
+
+#endif
-- 
1.7.9.5


More information about the Alsa-devel mailing list