summaryrefslogtreecommitdiff
path: root/sound/arm/mxc-alsa-pmic.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/arm/mxc-alsa-pmic.h')
-rw-r--r--sound/arm/mxc-alsa-pmic.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/sound/arm/mxc-alsa-pmic.h b/sound/arm/mxc-alsa-pmic.h
new file mode 100644
index 000000000000..ccda66ecc70f
--- /dev/null
+++ b/sound/arm/mxc-alsa-pmic.h
@@ -0,0 +1,110 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Copyright 2007-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+ /*!
+ * @file mxc-alsa-pmic.h
+ * @brief
+ * @ingroup SOUND_DRV
+ */
+
+#ifndef __MXC_ALSA_PMIC_H__
+#define __MXC_ALSA_PMIC_H__
+
+#ifdef __KERNEL__
+
+ /**/
+#define PMIC_MASTER 0x1
+#define PMIC_SLAVE 0x2
+ /**/
+#define DAM_PORT_4 port_4
+#define DAM_PORT_5 port_5
+ /**/
+#define PMIC_STEREODAC 0x1
+#define PMIC_CODEC 0x2
+ /**/
+#define PMIC_AUDIO_ADDER_STEREO 0x1
+#define PMIC_AUDIO_ADDER_STEREO_OPPOSITE 0x2
+#define PMIC_AUDIO_ADDER_MONO 0x4
+#define PMIC_AUDIO_ADDER_MONO_OPPOSITE 0x8
+#define TX_WATERMARK 0x4
+#define RX_WATERMARK 0x6
+ /**/
+#define SSI_DEFAULT_FIFO 0x0
+#define DEFAULT_MASTER_CLOCK 0x1
+ /**/
+#define SDMA_TXFIFO_WATERMARK 0x4
+#define SDMA_RXFIFO_WATERMARK 0x6
+ /**/
+#define TIMESLOTS_2 0x3
+#define TIMESLOTS_4 0x2
+#define SAMPLE_RATE_MAX 0x9
+ /**/
+#define CLK_SELECT_SLAVE_BCL 0x7
+#define CLK_SELECT_SLAVE_CLI 0x5
+#define CLK_SELECT_MASTER_CLI 0x4
+/* Volume to balance ratio */
+#define VOLUME_BALANCE_RATIO ((6 + 39) / (21 + 21))
+/* -21dB */
+#define PMIC_BALANCE_MIN 0x0
+/* 0dB*/
+#define PMIC_BALANCE_MAX 0x7
+/* -21dB left */
+#define BALANCE_MIN 0x0
+/* 0db, no balance */
+#define NO_BALANCE 0x32
+/* -21dB right*/
+#define BALANCE_MAX 0x64
+/* -8dB */
+#define PMIC_INPUT_VOLUME_MIN 0x0
+/* +23dB */
+#define PMIC_INPUT_VOLUME_MAX 0x1f
+/* -39dB */
+#define PMIC_OUTPUT_VOLUME_MIN PMIC_INPUT_VOLUME_MIN
+/* +6dB */
+#define PMIC_OUTPUT_VOLUME_MAX 0xd
+/* -8dB */
+#define INPUT_VOLUME_MIN 0x0
+/* +23dB */
+#define INPUT_VOLUME_MAX 0x64
+/* -39dB */
+#define OUTPUT_VOLUME_MIN 0x0
+/* +6dB */
+#define OUTPUT_VOLUME_MAX 0x64
+/* 96 Khz */
+#define SAMPLE_FREQ_MAX 96000
+/* 8 Khz */
+#define SAMPLE_FREQ_MIN 8000
+/*!
+ * Define channels available on MC13783. This is mainly used
+ * in mixer interface to control different input/output
+ * devices
+ */
+#define MXC_STEREO_OUTPUT (SOUND_MASK_VOLUME | SOUND_MASK_PCM)
+#define MXC_STEREO_INPUT (SOUND_MASK_PHONEIN)
+#define MXC_MONO_OUTPUT (SOUND_MASK_PHONEOUT | SOUND_MASK_SPEAKER)
+#define MXC_MONO_INPUT (SOUND_MASK_LINE | SOUND_MASK_MIC)
+#define SNDCTL_CLK_SET_MASTER _SIOR('Z', 30, int)
+#define SNDCTL_PMIC_READ_OUT_BALANCE _SIOR('Z', 8, int)
+/*#define SNDCTL_MC13783_WRITE_OUT_BALANCE _SIOWR('Z', 9, int)*/
+#define SNDCTL_PMIC_WRITE_OUT_ADDER _SIOWR('Z', 10, int)
+#define SNDCTL_PMIC_READ_OUT_ADDER _SIOR('Z', 11, int)
+#define SNDCTL_PMIC_WRITE_CODEC_FILTER _SIOWR('Z', 12, int)
+#define SNDCTL_PMIC_READ_CODEC_FILTER _SIOR('Z', 13, int)
+#define SNDCTL_DAM_SET_OUT_PORT _SIOWR('Z', 14, int)
+#endif /* __KERNEL__ */
+#endif /* __MXC_ALSA_PMIC_H__ */