Update benchmark projects.
[bertos.git] / bertos / drv / wm8731.c
index 74a07c4f14ef66102d60df5d86d1cfbb3710e9fa..e96ce6f1614d76eb2d4949a9ede95074619f808b 100644 (file)
@@ -61,8 +61,9 @@ static void wm8731_write(Wm8731 *ctx, uint8_t reg, uint16_t value)
        i2c_putc(ctx->i2c, (uint8_t)((tmp & 0xFF00) >> 8));
        i2c_putc(ctx->i2c, (uint8_t)(tmp & 0xFF));
 
-       if (i2c_error(ctx->i2c))
-               LOG_ERR("Error while send command to codec.\n");
+       int err = i2c_error(ctx->i2c);
+       if (err)
+               LOG_ERR("Error[%d] while send command to codec.\n", err);
 
 }
 
@@ -136,12 +137,21 @@ void wm8731_init(Wm8731 *ctx, I2c *i2c, uint8_t codec_addr)
 
 
        /* Configure the codec */
-       wm8731_write(ctx, WM8731_REG_DIGITAL_PATH_CTRL, CONFIG_WM8731_DEEMP | CONFIG_WM8731_DAPC |
-                                               (CONFIG_WM8731_DACMU << WM8731_DACMU));
-       wm8731_write(ctx, WM8731_REG_ANALOGUE_PATH_CTRL, (CONFIG_WM8731_MICBOOST ? BV(WM8731_MICBOOST) : ~BV(WM8731_MICBOOST)) |
-                                               CONFIG_WM8731_INSEL | CONFIG_WM8731_BYPASS | CONFIG_WM8731_SIDEATT);
-       wm8731_write(ctx, WM8731_REG_DA_INTERFACE_FORMAT, CONFIG_WM8731_INTERFACE_FORMAT | CONFIG_WM8731_IWL_BITS |
-                                               (CONFIG_WM8731_MS ? BV(WM8731_MS_BIT) : ~BV(WM8731_MS_BIT)));
+       wm8731_write(ctx, WM8731_REG_DIGITAL_PATH_CTRL, CONFIG_WM8731_DEEMP | CONFIG_WM8731_DAPC | (CONFIG_WM8731_DACMU << WM8731_DACMU));
+
+       #if CONFIG_WM8731_MICBOOST
+       wm8731_write(ctx, WM8731_REG_ANALOGUE_PATH_CTRL, BV(WM8731_MICBOOST) | CONFIG_WM8731_INSEL | CONFIG_WM8731_BYPASS | CONFIG_WM8731_SIDEATT);
+       #else
+       wm8731_write(ctx, WM8731_REG_ANALOGUE_PATH_CTRL, (CONFIG_WM8731_INSEL | CONFIG_WM8731_BYPASS | CONFIG_WM8731_SIDEATT) & ~BV(WM8731_MICBOOST));
+       #endif
+
+       #if CONFIG_WM8731_MS
+       wm8731_write(ctx, WM8731_REG_DA_INTERFACE_FORMAT, CONFIG_WM8731_INTERFACE_FORMAT | CONFIG_WM8731_IWL_BITS | BV(WM8731_MS_BIT));
+       #else
+       wm8731_write(ctx, WM8731_REG_DA_INTERFACE_FORMAT,
+               (CONFIG_WM8731_INTERFACE_FORMAT | CONFIG_WM8731_IWL_BITS | BV(WM8731_MS_BIT)) & ~BV(WM8731_MS_BIT));
+       #endif
+
        wm8731_write(ctx, WM8731_REG_SAMPLECTRL, CONFIG_WM8731_SAMPLING_RATES);
 
        /* By default we turn on all devices and disable only the outclock */