Blame view

include/sound/es1688.h 3.52 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
  #ifndef __SOUND_ES1688_H
  #define __SOUND_ES1688_H
  
  /*
   *  Header file for ES488/ES1688
c1017a4cd   Jaroslav Kysela   [ALSA] Changed Ja...
6
   *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   *
   *
   *   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
   *
   */
  
  #include "control.h"
  #include "pcm.h"
  #include <linux/interrupt.h>
  
  #define ES1688_HW_AUTO		0x0000
  #define ES1688_HW_688		0x0001
  #define ES1688_HW_1688		0x0002
d3a7e4767   Takashi Iwai   [ALSA] Remove xxx...
32
  struct snd_es1688 {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
34
35
36
37
38
39
40
41
42
43
44
  	unsigned long port;		/* port of ESS chip */
  	struct resource *res_port;
  	unsigned long mpu_port;		/* MPU-401 port of ESS chip */
  	int irq;			/* IRQ number of ESS chip */
  	int mpu_irq;			/* MPU IRQ */
  	int dma8;			/* 8-bit DMA */
  	unsigned short version;		/* version of ESS chip */
  	unsigned short hardware;	/* see to ES1688_HW_XXXX */
  
  	unsigned short trigger_value;
  	unsigned char pad;
  	unsigned int dma_size;
d3a7e4767   Takashi Iwai   [ALSA] Remove xxx...
45
46
47
  	struct snd_pcm *pcm;
  	struct snd_pcm_substream *playback_substream;
  	struct snd_pcm_substream *capture_substream;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
48
49
50
51
  
  	spinlock_t reg_lock;
  	spinlock_t mixer_lock;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
  /* I/O ports */
  
  #define ES1688P(codec, x) ((codec)->port + e_s_s_ESS1688##x)
  
  #define e_s_s_ESS1688RESET	0x6
  #define e_s_s_ESS1688READ	0xa
  #define e_s_s_ESS1688WRITE	0xc
  #define e_s_s_ESS1688COMMAND	0xc
  #define e_s_s_ESS1688STATUS	0xc
  #define e_s_s_ESS1688DATA_AVAIL	0xe
  #define e_s_s_ESS1688DATA_AVAIL_16 0xf
  #define e_s_s_ESS1688MIXER_ADDR	0x4
  #define e_s_s_ESS1688MIXER_DATA	0x5
  #define e_s_s_ESS1688OPL3_LEFT	0x0
  #define e_s_s_ESS1688OPL3_RIGHT	0x2
  #define e_s_s_ESS1688OPL3_BOTH	0x8
  #define e_s_s_ESS1688ENABLE0	0x0
  #define e_s_s_ESS1688ENABLE1	0x9
  #define e_s_s_ESS1688ENABLE2	0xb
  #define e_s_s_ESS1688INIT1	0x7
  
  #define ES1688_DSP_CMD_DMAOFF	0xd0
  #define ES1688_DSP_CMD_SPKON	0xd1
  #define ES1688_DSP_CMD_SPKOFF	0xd3
  #define ES1688_DSP_CMD_DMAON	0xd4
  
  #define ES1688_PCM_DEV		0x14
  #define ES1688_MIC_DEV		0x1a
  #define ES1688_REC_DEV		0x1c
  #define ES1688_MASTER_DEV	0x32
  #define ES1688_FM_DEV		0x36
  #define ES1688_CD_DEV		0x38
  #define ES1688_AUX_DEV		0x3a
  #define ES1688_SPEAKER_DEV	0x3c
  #define ES1688_LINE_DEV		0x3e
  #define ES1688_RECLEV_DEV	0xb4
  
  #define ES1688_MIXS_MASK	0x17
  #define ES1688_MIXS_MIC		0x00
  #define ES1688_MIXS_MIC_MASTER	0x01
  #define ES1688_MIXS_CD		0x02
  #define ES1688_MIXS_AOUT	0x03
  #define ES1688_MIXS_MIC1	0x04
  #define ES1688_MIXS_REC_MIX	0x05
  #define ES1688_MIXS_LINE	0x06
  #define ES1688_MIXS_MASTER	0x07
  #define ES1688_MIXS_MUTE	0x10
  
  /*
  
   */
d3a7e4767   Takashi Iwai   [ALSA] Remove xxx...
103
  void snd_es1688_mixer_write(struct snd_es1688 *chip, unsigned char reg, unsigned char data);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
104

d3a7e4767   Takashi Iwai   [ALSA] Remove xxx...
105
  int snd_es1688_create(struct snd_card *card,
396fa8272   Krzysztof Helt   ALSA: es1688: all...
106
  		      struct snd_es1688 *chip,
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
107
108
109
110
111
  		      unsigned long port,
  		      unsigned long mpu_port,
  		      int irq,
  		      int mpu_irq,
  		      int dma8,
396fa8272   Krzysztof Helt   ALSA: es1688: all...
112
113
114
115
  		      unsigned short hardware);
  int snd_es1688_pcm(struct snd_card *card, struct snd_es1688 *chip, int device,
  		   struct snd_pcm **rpcm);
  int snd_es1688_mixer(struct snd_card *card, struct snd_es1688 *chip);
a20971b20   Krzysztof Helt   ALSA: Merge es168...
116
  int snd_es1688_reset(struct snd_es1688 *chip);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
117
118
  
  #endif /* __SOUND_ES1688_H */