提交 87eedd2f 编写于 作者: C Clemens Ladisch 提交者: Takashi Iwai

[ALSA] oxygen: make SPI/2-wire configuration model-specific

Allow the model drivers to specify if the codec communication goes over
SPI or a 2-wire bus.
Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
上级 f009ad9b
...@@ -164,7 +164,7 @@ static const struct oxygen_model model_hifier = { ...@@ -164,7 +164,7 @@ static const struct oxygen_model model_hifier = {
PLAYBACK_1_TO_SPDIF | PLAYBACK_1_TO_SPDIF |
CAPTURE_0_FROM_I2S_1, CAPTURE_0_FROM_I2S_1,
.dac_channels = 2, .dac_channels = 2,
.function_flags = 0, .function_flags = OXYGEN_FUNCTION_SPI,
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
}; };
......
...@@ -310,7 +310,8 @@ static const struct oxygen_model model_generic = { ...@@ -310,7 +310,8 @@ static const struct oxygen_model model_generic = {
CAPTURE_1_FROM_SPDIF | CAPTURE_1_FROM_SPDIF |
CAPTURE_2_FROM_AC97_1, CAPTURE_2_FROM_AC97_1,
.dac_channels = 8, .dac_channels = 8,
.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5, .function_flags = OXYGEN_FUNCTION_SPI |
OXYGEN_FUNCTION_ENABLE_SPI_4_5,
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
}; };
...@@ -335,7 +336,8 @@ static const struct oxygen_model model_meridian = { ...@@ -335,7 +336,8 @@ static const struct oxygen_model model_meridian = {
CAPTURE_1_FROM_SPDIF | CAPTURE_1_FROM_SPDIF |
CAPTURE_2_FROM_AC97_1, CAPTURE_2_FROM_AC97_1,
.dac_channels = 8, .dac_channels = 8,
.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5, .function_flags = OXYGEN_FUNCTION_SPI |
OXYGEN_FUNCTION_ENABLE_SPI_4_5,
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
}; };
......
...@@ -240,12 +240,12 @@ static void oxygen_init(struct oxygen *chip) ...@@ -240,12 +240,12 @@ static void oxygen_init(struct oxygen *chip)
chip->has_ac97_0 = (i & OXYGEN_AC97_CODEC_0) != 0; chip->has_ac97_0 = (i & OXYGEN_AC97_CODEC_0) != 0;
chip->has_ac97_1 = (i & OXYGEN_AC97_CODEC_1) != 0; chip->has_ac97_1 = (i & OXYGEN_AC97_CODEC_1) != 0;
oxygen_set_bits8(chip, OXYGEN_FUNCTION,
OXYGEN_FUNCTION_RESET_CODEC |
chip->model->function_flags);
oxygen_write8_masked(chip, OXYGEN_FUNCTION, oxygen_write8_masked(chip, OXYGEN_FUNCTION,
OXYGEN_FUNCTION_SPI, OXYGEN_FUNCTION_RESET_CODEC |
OXYGEN_FUNCTION_2WIRE_SPI_MASK); chip->model->function_flags,
OXYGEN_FUNCTION_RESET_CODEC |
OXYGEN_FUNCTION_2WIRE_SPI_MASK |
OXYGEN_FUNCTION_ENABLE_SPI_4_5);
oxygen_write8(chip, OXYGEN_DMA_STATUS, 0); oxygen_write8(chip, OXYGEN_DMA_STATUS, 0);
oxygen_write8(chip, OXYGEN_DMA_PAUSE, 0); oxygen_write8(chip, OXYGEN_DMA_PAUSE, 0);
oxygen_write8(chip, OXYGEN_PLAY_CHANNELS, oxygen_write8(chip, OXYGEN_PLAY_CHANNELS,
......
...@@ -353,7 +353,8 @@ static const struct oxygen_model model_xonar = { ...@@ -353,7 +353,8 @@ static const struct oxygen_model model_xonar = {
CAPTURE_0_FROM_I2S_2 | CAPTURE_0_FROM_I2S_2 |
CAPTURE_1_FROM_SPDIF, CAPTURE_1_FROM_SPDIF,
.dac_channels = 8, .dac_channels = 8,
.function_flags = OXYGEN_FUNCTION_ENABLE_SPI_4_5, .function_flags = OXYGEN_FUNCTION_SPI |
OXYGEN_FUNCTION_ENABLE_SPI_4_5,
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册