#ifndef __INTELMID_SND_CTRL_H__ #define __INTELMID_SND_CTRL_H__ /* * intelmid_snd_control.h - Intel Sound card driver for MID * * Copyright (C) 2008-10 Intel Corporation * Authors: Vinod Koul * Harsha Priya * Dharageswari R * KP Jeeja * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * 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; version 2 of the License. * * 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. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * This file defines all snd control functions */ /* Mask bits */ #define MASK0 0x01 /* 0000 0001 */ #define MASK1 0x02 /* 0000 0010 */ #define MASK2 0x04 /* 0000 0100 */ #define MASK3 0x08 /* 0000 1000 */ #define MASK4 0x10 /* 0001 0000 */ #define MASK5 0x20 /* 0010 0000 */ #define MASK6 0x40 /* 0100 0000 */ #define MASK7 0x80 /* 1000 0000 */ /* value bits */ #define VALUE0 0x01 /* 0000 0001 */ #define VALUE1 0x02 /* 0000 0010 */ #define VALUE2 0x04 /* 0000 0100 */ #define VALUE3 0x08 /* 0000 1000 */ #define VALUE4 0x10 /* 0001 0000 */ #define VALUE5 0x20 /* 0010 0000 */ #define VALUE6 0x40 /* 0100 0000 */ #define VALUE7 0x80 /* 1000 0000 */ #define MUTE 0 /* ALSA Passes 0 for mute */ #define UNMUTE 1 /* ALSA Passes 1 for unmute */ #define MAX_VOL_PMIC_VENDOR0 0x3f /* max vol in dB for stereo & voice DAC */ #define MIN_VOL_PMIC_VENDOR0 0 /* min vol in dB for stereo & voice DAC */ /* Head phone volume control */ #define MAX_HP_VOL_PMIC_VENDOR1 6 /* max volume in dB for HP */ #define MIN_HP_VOL_PMIC_VENDOR1 (-84) /* min volume in dB for HP */ #define MAX_HP_VOL_INDX_PMIC_VENDOR1 40 /* Number of HP volume control values */ /* Mono Earpiece Volume control */ #define MAX_EP_VOL_PMIC_VENDOR1 0 /* max volume in dB for EP */ #define MIN_EP_VOL_PMIC_VENDOR1 (-75) /* min volume in dB for EP */ #define MAX_EP_VOL_INDX_PMIC_VENDOR1 32 /* Number of EP volume control values */ int sst_sc_reg_access(struct sc_reg_access *sc_access, int type, int num_val); extern struct snd_pmic_ops snd_pmic_ops_fs; extern struct snd_pmic_ops snd_pmic_ops_mx; extern struct snd_pmic_ops snd_pmic_ops_nc; extern struct snd_pmic_ops snd_msic_ops; /* device */ enum SND_INPUT_DEVICE { AMIC, DMIC, HS_MIC, IN_UNDEFINED }; enum SND_LINE_OUT_DEVICE { HEADSET, IHF, VIBRA1, VIBRA2, NONE, }; enum SND_OUTPUT_DEVICE { STEREO_HEADPHONE, MONO_EARPIECE, INTERNAL_SPKR, RECEIVER, OUT_UNDEFINED }; enum pmic_controls { PMIC_SND_HP_MIC_MUTE = 0x0001, PMIC_SND_AMIC_MUTE = 0x0002, PMIC_SND_DMIC_MUTE = 0x0003, PMIC_SND_CAPTURE_VOL = 0x0004, /* Output controls */ PMIC_SND_LEFT_PB_VOL = 0x0010, PMIC_SND_RIGHT_PB_VOL = 0x0011, PMIC_SND_LEFT_HP_MUTE = 0x0012, PMIC_SND_RIGHT_HP_MUTE = 0x0013, PMIC_SND_LEFT_SPEAKER_MUTE = 0x0014, PMIC_SND_RIGHT_SPEAKER_MUTE = 0x0015, PMIC_SND_RECEIVER_VOL = 0x0016, PMIC_SND_RECEIVER_MUTE = 0x0017, PMIC_SND_LEFT_MASTER_VOL = 0x0018, PMIC_SND_RIGHT_MASTER_VOL = 0x0019, /* Other controls */ PMIC_SND_MUTE_ALL = 0x0020, PMIC_MAX_CONTROLS = 0x0020, }; #endif /* __INTELMID_SND_CTRL_H__ */