patch-2.1.23 linux/drivers/sbus/audio/cs4231.h
Next file: linux/drivers/sbus/char/openprom.c
Previous file: linux/drivers/sbus/audio/cs4231.c
Back to the patch index
Back to the overall index
- Lines: 139
- Date:
Sun Jan 26 12:07:18 1997
- Orig file:
v2.1.22/linux/drivers/sbus/audio/cs4231.h
- Orig date:
Thu Jan 1 02:00:00 1970
diff -u --recursive --new-file v2.1.22/linux/drivers/sbus/audio/cs4231.h linux/drivers/sbus/audio/cs4231.h
@@ -0,0 +1,138 @@
+/*
+ * drivers/sbus/audio/cs4231.h
+ *
+ * Copyright (C) 1996 Thomas K. Dyas (tdyas@noc.rutgers.edu)
+ * Copyright (C) 1997 Derrick J. Brashear (shadow@dementia.org)
+ */
+
+#ifndef _CS4231_H_
+#define _CS4231_H_
+
+#include <linux/types.h>
+
+struct cs4231_regs {
+ u_char iar; /* Index Address Register */
+ u_char pad0[3];
+ u_char idr; /* Indexed Data Register */
+ u_char pad1[3];
+ u_char statr; /* Status Register */
+ u_char pad2[3];
+ u_char piodr; /* PIO Data Register I/O */
+ u_char pad3[3];
+};
+
+struct cs4231_dma {
+ u_long dmacsr; /* APC CSR */
+ u_long dmapad[3];
+ u_long dmacva; /* Capture Virtual Address */
+ u_long dmacc; /* Capture Count */
+ u_long dmacnva; /* Capture Next VAddress */
+ u_long dmacnc; /* Capture Next Count */
+ u_long dmapva; /* Playback Virtual Address */
+ u_long dmapc; /* Playback Count */
+ u_long dmapnva; /* Playback Next VAddress */
+ u_long dmapnc; /* Playback Next Count */
+};
+
+struct cs4231_chip {
+ struct cs4231_regs pioregs;
+ struct cs4231_dma dmaregs;
+};
+
+struct cs4231_stream_info {
+ unsigned int sample_rate; /* samples per second */
+ unsigned int channels; /* number of interleaved channels */
+ unsigned int precision; /* bit-width of each sample */
+ unsigned int encoding; /* data encoding method */
+ unsigned int gain; /* gain level: 0 - 255 */
+ unsigned int port;
+};
+
+#define CS_TIMEOUT 9000000
+
+#define GAIN_SET(var, gain) ((var & ~(0x3f)) | gain)
+#define RECGAIN_SET(var, gain) ((var & ~(0x1f)) | gain)
+
+#define IAR_AUTOCAL_BEGIN 0x40
+#define IAR_AUTOCAL_END ~(0x40)
+#define IAR_NOT_READY 0x80 /* 80h not ready CODEC state */
+
+#define MIC_ENABLE(var) ((var & 0x2f) | 0x80)
+#define LINE_ENABLE(var) (var & 0x2f)
+#define CDROM_ENABLE(var) ((var & 0x2f) | 0x40)
+
+#define OUTCR_MUTE 0x80
+#define OUTCR_UNMUTE ~0x80
+
+/* 8 */
+#define DEFAULT_DATA_FMAT 0x20
+
+/* 10 */
+#define PINCR_LINE_MUTE 0x40
+#define PINCR_HDPH_MUTE 0x80
+
+/* 11 */
+#define AUTOCAL_IN_PROGRESS 0x20
+
+/* 12 */
+#define MISC_IR_MODE2 0x40
+
+/* 13 */
+#define LOOPB_ON 0x01
+#define LOOPB_OFF 0x00
+
+/* 16 */
+#define OLB_ENABLE 0x80
+
+/* 17 */
+#define HPF_ON 0x01
+#define XTALE_ON 0x20
+
+#define MONO_IOCR_MUTE 0x40;
+
+/* 30 */
+#define CS4231A 0x20
+
+
+#define APC_CODEC_PDN 0x20
+#define APC_RESET 0x01
+
+#define CS4231_DEFAULT_PLAYGAIN (132)
+#define CS4231_DEFAULT_RECGAIN (126)
+
+#define CS4231_MIN_ATEN (0)
+#define CS4231_MAX_ATEN (31)
+#define CS4231_MAX_DEV_ATEN (63)
+#define CS4231_MIN_GAIN (0)
+#define CS4231_MAX_GAIN (15)
+#define CS4231_MON_MIN_ATEN (0)
+#define CS4231_MON_MAX_ATEN (63)
+
+#define CS4231_PRECISION (8) /* Bits per sample unit */
+#define CS4231_CHANNELS (1) /* Channels per sample frame */
+
+#define CS4231_RATE (8000)
+
+#define AUDIO_ENCODING_NONE (0) /* no encoding assigned */
+#define AUDIO_ENCODING_ULAW (1) /* u-law encoding */
+#define AUDIO_ENCODING_ALAW (2) /* A-law encoding */
+#define AUDIO_ENCODING_LINEAR (3) /* Linear PCM encoding */
+#define AUDIO_ENCODING_DVI (104) /* DVI ADPCM */
+#define AUDIO_ENCODING_LINEAR8 (105) /* 8 bit UNSIGNED */
+
+#define AUDIO_LEFT_BALANCE (0)
+#define AUDIO_MID_BALANCE (32)
+#define AUDIO_RIGHT_BALANCE (64)
+#define AUDIO_BALANCE_SHIFT (3)
+
+#define AUDIO_SPEAKER 0x01
+#define AUDIO_HEADPHONE 0x02
+#define AUDIO_LINE_OUT 0x04
+
+#define AUDIO_MICROPHONE 0x01
+#define AUDIO_LINE_IN 0x02
+#define AUDIO_INTERNAL_CD_IN 0x04
+
+#define AUDIO_MAX_GAIN (255)
+
+#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov