PLAYBACK_1_TO_SPDIF |
                       CAPTURE_0_FROM_I2S_1,
        .dac_channels = 2,
-       .function_flags = 0,
+       .function_flags = OXYGEN_FUNCTION_SPI,
        .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
 };
 
                       CAPTURE_1_FROM_SPDIF |
                       CAPTURE_2_FROM_AC97_1,
        .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,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
 };
                       CAPTURE_1_FROM_SPDIF |
                       CAPTURE_2_FROM_AC97_1,
        .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,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
 };
 
        chip->has_ac97_0 = (i & OXYGEN_AC97_CODEC_0) != 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_FUNCTION_SPI,
-                            OXYGEN_FUNCTION_2WIRE_SPI_MASK);
+                            OXYGEN_FUNCTION_RESET_CODEC |
+                            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_PAUSE, 0);
        oxygen_write8(chip, OXYGEN_PLAY_CHANNELS,
 
                       CAPTURE_0_FROM_I2S_2 |
                       CAPTURE_1_FROM_SPDIF,
        .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,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
 };