Fix initialization. Use macro for sampling rate.
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 16 Sep 2011 16:55:40 +0000 (16:55 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 16 Sep 2011 16:55:40 +0000 (16:55 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@5064 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/drv/wm8731.c
boards/sam3x-ek/examples/sam3x-ek_codec/cfg/cfg_wm8731.h

index 340ca817c4f353473ada885a0eb63b9d9341132d..e96ce6f1614d76eb2d4949a9ede95074619f808b 100644 (file)
@@ -137,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 */
index e268b8015ce27e3196af0e6975b58c527b51ead1..b90815b135848c32ab405464cc496527ab9b3374 100644 (file)
 
 /**
  * Data sampling rate, refer to datasheet for this value.
- * $WIZ$ type = "hex"
+ * $WIZ$ type = "enum"
+ * $WIZ$ value_list = "wm8731_sample_rate"
  */
-#define CONFIG_WM8731_SAMPLING_RATES     0x6
+#define CONFIG_WM8731_SAMPLING_RATES     WM8731_NORMAL_256FS_44_1KHZ
 
 #endif /* CFG_WM8731_H */