Commit 3b94253b authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela

[ALSA] oxygen: reduce SPI clock frequency for AK4396/WM8785

According to the datasheets, the SPI clock cycle must be at least 200 ns
for the AK4396 and the WM8785, so we cannot use the default 160 ns.
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 71e22a4b
...@@ -166,7 +166,7 @@ static void ak4396_write(struct oxygen *chip, unsigned int codec, ...@@ -166,7 +166,7 @@ static void ak4396_write(struct oxygen *chip, unsigned int codec,
}; };
oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER | oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER |
OXYGEN_SPI_DATA_LENGTH_2 | OXYGEN_SPI_DATA_LENGTH_2 |
OXYGEN_SPI_CLOCK_160 | OXYGEN_SPI_CLOCK_320 |
(codec_spi_map[codec] << OXYGEN_SPI_CODEC_SHIFT) | (codec_spi_map[codec] << OXYGEN_SPI_CODEC_SHIFT) |
OXYGEN_SPI_CEN_LATCH_CLOCK_HI, OXYGEN_SPI_CEN_LATCH_CLOCK_HI,
AK4396_WRITE | (reg << 8) | value); AK4396_WRITE | (reg << 8) | value);
...@@ -176,7 +176,7 @@ static void wm8785_write(struct oxygen *chip, u8 reg, unsigned int value) ...@@ -176,7 +176,7 @@ static void wm8785_write(struct oxygen *chip, u8 reg, unsigned int value)
{ {
oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER | oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER |
OXYGEN_SPI_DATA_LENGTH_2 | OXYGEN_SPI_DATA_LENGTH_2 |
OXYGEN_SPI_CLOCK_160 | OXYGEN_SPI_CLOCK_320 |
(3 << OXYGEN_SPI_CODEC_SHIFT) | (3 << OXYGEN_SPI_CODEC_SHIFT) |
OXYGEN_SPI_CEN_LATCH_CLOCK_LO, OXYGEN_SPI_CEN_LATCH_CLOCK_LO,
(reg << 9) | value); (reg << 9) | value);
......
...@@ -174,7 +174,7 @@ void oxygen_write_spi(struct oxygen *chip, u8 control, unsigned int data) ...@@ -174,7 +174,7 @@ void oxygen_write_spi(struct oxygen *chip, u8 control, unsigned int data)
{ {
unsigned int count; unsigned int count;
/* should not need more than 3.84 us (24 * 160 ns) */ /* should not need more than 7.68 us (24 * 320 ns) */
count = 10; count = 10;
while ((oxygen_read8(chip, OXYGEN_SPI_CONTROL) & OXYGEN_SPI_BUSY) while ((oxygen_read8(chip, OXYGEN_SPI_CONTROL) & OXYGEN_SPI_BUSY)
&& count > 0) { && count > 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment