OXYGEN_RATE_48000 | chip->model->dac_i2s_format |
                       OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
                       OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
-       oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
-                      OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
-                      OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
-                      OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
-       oxygen_write16(chip, OXYGEN_I2S_B_FORMAT,
-                      OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
-                      OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
-                      OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
+       if (chip->model->pcm_dev_cfg & CAPTURE_0_FROM_I2S_1)
+               oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
+                              OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
+                              OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
+                              OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
+       else
+               oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
+                              OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
+       if (chip->model->pcm_dev_cfg & (CAPTURE_0_FROM_I2S_2 |
+                                       CAPTURE_2_FROM_I2S_2))
+               oxygen_write16(chip, OXYGEN_I2S_B_FORMAT,
+                              OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
+                              OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
+                              OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
+       else
+               oxygen_write16(chip, OXYGEN_I2S_B_FORMAT,
+                              OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
        oxygen_write16(chip, OXYGEN_I2S_C_FORMAT,
-                      OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
-                      OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
-                      OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
+                      OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
        oxygen_write32_masked(chip, OXYGEN_SPDIF_CONTROL,
                              OXYGEN_SPDIF_SENSE_MASK |
                              OXYGEN_SPDIF_LOCK_MASK |