Blame view

include/sound/ak4531_codec.h 2.42 KB
1a59d1b8e   Thomas Gleixner   treewide: Replace...
1
  /* SPDX-License-Identifier: GPL-2.0-or-later */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
3
4
5
  #ifndef __SOUND_AK4531_CODEC_H
  #define __SOUND_AK4531_CODEC_H
  
  /*
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
   *  Universal interface for Audio Codec '97
   *
   *  For more details look to AC '97 component specification revision 2.1
   *  by Intel Corporation (http://developer.intel.com).
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
11
   */
a1ce39288   David Howells   UAPI: (Scripted) ...
12
13
  #include <sound/info.h>
  #include <sound/control.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  
  /*
   *  ASAHI KASEI - AK4531 codec
   *  - not really AC'97 codec, but it uses very similar interface as AC'97
   */
  
  /*
   *  AK4531 codec registers
   */
  
  #define AK4531_LMASTER  0x00	/* master volume left */
  #define AK4531_RMASTER  0x01	/* master volume right */
  #define AK4531_LVOICE   0x02	/* channel volume left */
  #define AK4531_RVOICE   0x03	/* channel volume right */
  #define AK4531_LFM      0x04	/* FM volume left */
  #define AK4531_RFM      0x05	/* FM volume right */
  #define AK4531_LCD      0x06	/* CD volume left */
  #define AK4531_RCD      0x07	/* CD volume right */
  #define AK4531_LLINE    0x08	/* LINE volume left */
  #define AK4531_RLINE    0x09	/* LINE volume right */
  #define AK4531_LAUXA    0x0a	/* AUXA volume left */
  #define AK4531_RAUXA    0x0b	/* AUXA volume right */
  #define AK4531_MONO1    0x0c	/* MONO1 volume left */
  #define AK4531_MONO2    0x0d	/* MONO1 volume right */
  #define AK4531_MIC      0x0e	/* MIC volume */
  #define AK4531_MONO_OUT 0x0f	/* Mono-out volume */
  #define AK4531_OUT_SW1  0x10	/* Output mixer switch 1 */
  #define AK4531_OUT_SW2  0x11	/* Output mixer switch 2 */
  #define AK4531_LIN_SW1  0x12	/* Input left mixer switch 1 */
  #define AK4531_RIN_SW1  0x13	/* Input right mixer switch 1 */
  #define AK4531_LIN_SW2  0x14	/* Input left mixer switch 2 */
  #define AK4531_RIN_SW2  0x15	/* Input right mixer switch 2 */
  #define AK4531_RESET    0x16	/* Reset & power down */
  #define AK4531_CLOCK    0x17	/* Clock select */
  #define AK4531_AD_IN    0x18	/* AD input select */
  #define AK4531_MIC_GAIN 0x19	/* MIC amplified gain */
9f38945fa   Takashi Iwai   [ALSA] Remove xxx...
50
51
52
  struct snd_ak4531 {
  	void (*write) (struct snd_ak4531 *ak4531, unsigned short reg,
  		       unsigned short val);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
53
  	void *private_data;
9f38945fa   Takashi Iwai   [ALSA] Remove xxx...
54
  	void (*private_free) (struct snd_ak4531 *ak4531);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
56
  	/* --- */
  	unsigned char regs[0x20];
62932df8f   Ingo Molnar   [ALSA] semaphore ...
57
  	struct mutex reg_mutex;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
58
  };
9f38945fa   Takashi Iwai   [ALSA] Remove xxx...
59
60
  int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531,
  		     struct snd_ak4531 **rak4531);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
61

11d3824ad   Takashi Iwai   [ALSA] ak4531 - A...
62
63
64
65
  #ifdef CONFIG_PM
  void snd_ak4531_suspend(struct snd_ak4531 *ak4531);
  void snd_ak4531_resume(struct snd_ak4531 *ak4531);
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
66
  #endif /* __SOUND_AK4531_CODEC_H */