added a few registerdefines for codec, added unmute mixer output. ES1370, SB PCI128 now produces sound on haiku over here.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28465 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2008-11-02 16:29:20 +00:00
parent bff51d943a
commit 9fb04b9066
2 changed files with 58 additions and 17 deletions

View File

@ -463,14 +463,22 @@ es1370_setup(es1370_dev * card)
/* reset the codec */
PRINT(("codec reset\n"));
es1370_codec_write(&card->config, CODEC_RES_PD, 0x2);
es1370_codec_write(&card->config, CODEC_RES_PD, 0x3);
es1370_codec_write(&card->config, CODEC_CSEL, 0x0);
es1370_codec_write(&card->config, CODEC_RESET_PWRDWN, 0x2);
snooze (20);
es1370_codec_write(&card->config, CODEC_RESET_PWRDWN, 0x3);
snooze (20);
es1370_codec_write(&card->config, CODEC_CLOCK_SEL, 0x0);
es1370_codec_write(&card->config, 0x0, 0x0);
es1370_codec_write(&card->config, 0x1, 0x0);
es1370_codec_write(&card->config, 0x2, 0x0);
es1370_codec_write(&card->config, 0x3, 0x0);
/* set max volume on master and mixer outputs */
es1370_codec_write(&card->config, CODEC_MASTER_VOL_L, 0x0);
es1370_codec_write(&card->config, CODEC_MASTER_VOL_R, 0x0);
es1370_codec_write(&card->config, CODEC_VOICE_VOL_L, 0x0);
es1370_codec_write(&card->config, CODEC_VOICE_VOL_R, 0x0);
/* unmute CD playback */
es1370_codec_write(&card->config, CODEC_OUTPUT_MIX1, ES1370_OUTPUT_MIX1_CDL | ES1370_OUTPUT_MIX1_CDR);
/* unmute mixer output */
es1370_codec_write(&card->config, CODEC_OUTPUT_MIX2, ES1370_OUTPUT_MIX2_VOICEL | ES1370_OUTPUT_MIX2_VOICER);
snooze(50000); // 50 ms

View File

@ -118,16 +118,49 @@
#define STAT_DAC2 0x00000002 /* DAC2 int pending */
#define STAT_ADC 0x00000001 /* ADC int pending */
#define CODEC_OMIX1 0x10
#define CODEC_OMIX2 0x11
#define CODEC_LIMIX1 0x12
#define CODEC_RIMIX1 0x13
#define CODEC_LIMIX2 0x14
#define CODEC_RIMIX2 0x15
#define CODEC_RES_PD 0x16
#define CODEC_CSEL 0x17
#define CODEC_ADSEL 0x18
#define CODEC_MGAIN 0x19
/* AKM AK4531 CODEC Control Register Map */
#define CODEC_MASTER_VOL_L 0x00
#define CODEC_MASTER_VOL_R 0x01
#define CODEC_VOICE_VOL_L 0x02
#define CODEC_VOICE_VOL_R 0x03
#define CODEC_FM_VOL_L 0x04
#define CODEC_FM_VOL_R 0x05
#define CODEC_CD_VOL_L 0x06
#define CODEC_CD_VOL_R 0x07
#define CODEC_LINE_VOL_L 0x08
#define CODEC_LINE_VOL_R 0x09
#define CODEC_AUX_VOL_L 0x0A
#define CODEC_AUX_VOL_R 0x0B
#define CODEC_MONO1_VOL 0x0C
#define CODEC_MONO2_VOL 0x0D
#define CODEC_MIC_VOL 0x0E
#define CODEC_MONO_OUT_VOL 0x0F
#define CODEC_OUTPUT_MIX1 0x10
#define CODEC_OUTPUT_MIX2 0x11
#define CODEC_L_INPUT_MIX1 0x12
#define CODEC_R_INPUT_MIX1 0x13
#define CODEC_L_INPUT_MIX2 0x14
#define CODEC_R_INPUT_MIX2 0x15
#define CODEC_RESET_PWRDWN 0x16
#define CODEC_CLOCK_SEL 0x17
#define CODEC_AD_INPUT_SEL 0x18
#define CODEC_MIC_AMP_GAIN 0x19
/* output mixer mute bit positions */
#define ES1370_OUTPUT_MIX1_FML (1<<6)
#define ES1370_OUTPUT_MIX1_FMR (1<<5)
#define ES1370_OUTPUT_MIX1_LINEL (1<<4)
#define ES1370_OUTPUT_MIX1_LINER (1<<3)
#define ES1370_OUTPUT_MIX1_CDL (1<<2)
#define ES1370_OUTPUT_MIX1_CDR (1<<1)
#define ES1370_OUTPUT_MIX1_MIC (1<<0)
#define ES1370_OUTPUT_MIX2_AUXL (1<<5)
#define ES1370_OUTPUT_MIX2_AUXR (1<<4)
#define ES1370_OUTPUT_MIX2_VOICEL (1<<3)
#define ES1370_OUTPUT_MIX2_VOICER (1<<2)
#define ES1370_OUTPUT_MIX2_MONO2 (1<<1)
#define ES1370_OUTPUT_MIX2_MONO1 (1<<0)
/* ES1371 specific */