aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2008-01-25 02:41:52 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:30:15 -0500
commitc626026dd72ec8363aaa862178adeacfa7ac09c5 (patch)
tree676752343a5140acae3add27d9b20d98bbaaa403 /sound/pci/oxygen/oxygen.c
parentb78e3dbb04ab4cbe3b94ef5426bcd5b167b6fc75 (diff)
[ALSA] add TempoTec HiFier driver
Add a driver for the MediaTek/TempoTec HiFier Fantasia sound card. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/oxygen/oxygen.c')
-rw-r--r--sound/pci/oxygen/oxygen.c43
1 files changed, 1 insertions, 42 deletions
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 60af3a7d9824..a0457a570946 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -36,6 +36,7 @@
36#include <sound/pcm_params.h> 36#include <sound/pcm_params.h>
37#include <sound/tlv.h> 37#include <sound/tlv.h>
38#include "oxygen.h" 38#include "oxygen.h"
39#include "ak4396.h"
39 40
40MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>"); 41MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
41MODULE_DESCRIPTION("C-Media CMI8788 driver"); 42MODULE_DESCRIPTION("C-Media CMI8788 driver");
@@ -61,8 +62,6 @@ static struct pci_device_id oxygen_ids[] __devinitdata = {
61 { OXYGEN_PCI_SUBID(0x13f6, 0x0010) }, 62 { OXYGEN_PCI_SUBID(0x13f6, 0x0010) },
62 { OXYGEN_PCI_SUBID(0x13f6, 0x8788) }, 63 { OXYGEN_PCI_SUBID(0x13f6, 0x8788) },
63 { OXYGEN_PCI_SUBID(0x147a, 0xa017) }, 64 { OXYGEN_PCI_SUBID(0x147a, 0xa017) },
64 { OXYGEN_PCI_SUBID(0x14c3, 0x1710) },
65 { OXYGEN_PCI_SUBID(0x14c3, 0x1711) },
66 { OXYGEN_PCI_SUBID(0x1a58, 0x0910) }, 65 { OXYGEN_PCI_SUBID(0x1a58, 0x0910) },
67 { OXYGEN_PCI_SUBID(0x415a, 0x5431), .driver_data = 1 }, 66 { OXYGEN_PCI_SUBID(0x415a, 0x5431), .driver_data = 1 },
68 { OXYGEN_PCI_SUBID(0x7284, 0x9761) }, 67 { OXYGEN_PCI_SUBID(0x7284, 0x9761) },
@@ -76,46 +75,6 @@ MODULE_DEVICE_TABLE(pci, oxygen_ids);
76#define GPIO_AK5385_DFS_DOUBLE 0x0001 75#define GPIO_AK5385_DFS_DOUBLE 0x0001
77#define GPIO_AK5385_DFS_QUAD 0x0002 76#define GPIO_AK5385_DFS_QUAD 0x0002
78 77
79#define AK4396_WRITE 0x2000
80
81#define AK4396_CONTROL_1 0
82#define AK4396_CONTROL_2 1
83#define AK4396_CONTROL_3 2
84#define AK4396_LCH_ATT 3
85#define AK4396_RCH_ATT 4
86
87/* control 1 */
88#define AK4396_RSTN 0x01
89#define AK4396_DIF_MASK 0x0e
90#define AK4396_DIF_16_LSB 0x00
91#define AK4396_DIF_20_LSB 0x02
92#define AK4396_DIF_24_MSB 0x04
93#define AK4396_DIF_24_I2S 0x06
94#define AK4396_DIF_24_LSB 0x08
95#define AK4396_ACKS 0x80
96/* control 2 */
97#define AK4396_SMUTE 0x01
98#define AK4396_DEM_MASK 0x06
99#define AK4396_DEM_441 0x00
100#define AK4396_DEM_OFF 0x02
101#define AK4396_DEM_48 0x04
102#define AK4396_DEM_32 0x06
103#define AK4396_DFS_MASK 0x18
104#define AK4396_DFS_NORMAL 0x00
105#define AK4396_DFS_DOUBLE 0x08
106#define AK4396_DFS_QUAD 0x10
107#define AK4396_SLOW 0x20
108#define AK4396_DZFM 0x40
109#define AK4396_DZFE 0x80
110/* control 3 */
111#define AK4396_DZFB 0x04
112#define AK4396_DCKB 0x10
113#define AK4396_DCKS 0x20
114#define AK4396_DSDM 0x40
115#define AK4396_D_P_MASK 0x80
116#define AK4396_PCM 0x00
117#define AK4396_DSD 0x80
118
119#define WM8785_R0 0 78#define WM8785_R0 0
120#define WM8785_R1 1 79#define WM8785_R1 1
121#define WM8785_R2 2 80#define WM8785_R2 2