remarkable-linux/sound/soc/codecs/wm8900.h
Mark Brown 78e19a39d3 ASoC: Convert WM8900 to do more work at I2C probe time
Redo the instantiation of the WM8900 to do most of the initialisation
work when the I2C driver probes rather than when the ASoC device is
instantiated, registering the codec with the ASoC core when done.

Also move all dynamic allocations into a single kmalloc() to simplify
error handling and rename the I2C driver to make output more sensible.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2008-12-10 19:47:40 +00:00

59 lines
1.6 KiB
C

/*
* wm8900.h -- WM890 Soc Audio driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef _WM8900_H
#define _WM8900_H
#define WM8900_FLL 1
#define WM8900_BCLK_DIV 1
#define WM8900_ADC_CLKDIV 2
#define WM8900_DAC_CLKDIV 3
#define WM8900_ADC_LRCLK 4
#define WM8900_DAC_LRCLK 5
#define WM8900_OPCLK_DIV 6
#define WM8900_LRCLK_MODE 7
#define WM8900_BCLK_DIV_1 0x00
#define WM8900_BCLK_DIV_1_5 0x02
#define WM8900_BCLK_DIV_2 0x04
#define WM8900_BCLK_DIV_3 0x06
#define WM8900_BCLK_DIV_4 0x08
#define WM8900_BCLK_DIV_5_5 0x0a
#define WM8900_BCLK_DIV_6 0x0c
#define WM8900_BCLK_DIV_8 0x0e
#define WM8900_BCLK_DIV_11 0x10
#define WM8900_BCLK_DIV_12 0x12
#define WM8900_BCLK_DIV_16 0x14
#define WM8900_BCLK_DIV_22 0x16
#define WM8900_BCLK_DIV_24 0x18
#define WM8900_BCLK_DIV_32 0x1a
#define WM8900_BCLK_DIV_44 0x1c
#define WM8900_BCLK_DIV_48 0x1e
#define WM8900_ADC_CLKDIV_1 0x00
#define WM8900_ADC_CLKDIV_1_5 0x20
#define WM8900_ADC_CLKDIV_2 0x40
#define WM8900_ADC_CLKDIV_3 0x60
#define WM8900_ADC_CLKDIV_4 0x80
#define WM8900_ADC_CLKDIV_5_5 0xa0
#define WM8900_ADC_CLKDIV_6 0xc0
#define WM8900_DAC_CLKDIV_1 0x00
#define WM8900_DAC_CLKDIV_1_5 0x04
#define WM8900_DAC_CLKDIV_2 0x08
#define WM8900_DAC_CLKDIV_3 0x0c
#define WM8900_DAC_CLKDIV_4 0x10
#define WM8900_DAC_CLKDIV_5_5 0x14
#define WM8900_DAC_CLKDIV_6 0x18
extern struct snd_soc_dai wm8900_dai;
extern struct snd_soc_codec_device soc_codec_dev_wm8900;
#endif