select SND_SOC_ML26124 if I2C
select SND_SOC_NAU8825 if I2C
select SND_SOC_PCM1681 if I2C
- - select SND_SOC_PCM1792A if SPI_MASTER
- - select SND_SOC_PCM179X if SPI_MASTER
++++ select SND_SOC_PCM179X_I2C if I2C
++++ select SND_SOC_PCM179X_SPI if SPI_MASTER
select SND_SOC_PCM3008
+ + select SND_SOC_PCM3168A_I2C if I2C
+ + select SND_SOC_PCM3168A_SPI if SPI_MASTER
select SND_SOC_PCM512x_I2C if I2C
select SND_SOC_PCM512x_SPI if SPI_MASTER
select SND_SOC_RT286 if I2C
tristate "Texas Instruments PCM1681 CODEC"
depends on I2C
- - config SND_SOC_PCM1792A
- - tristate "Texas Instruments PCM1792A CODEC"
+ + config SND_SOC_PCM179X
- - tristate "Texas Instruments PCM179X CODEC"
++++ tristate
++++
++++config SND_SOC_PCM179X_I2C
++++ tristate "Texas Instruments PCM179X CODEC (I2C)"
++++ depends on I2C
++++ select SND_SOC_PCM179X
++++ help
++++ Enable support for Texas Instruments PCM179x CODEC.
++++ Select this if your PCM179x is connected via an I2C bus.
++++
++++config SND_SOC_PCM179X_SPI
++++ tristate "Texas Instruments PCM179X CODEC (SPI)"
depends on SPI_MASTER
++++ select SND_SOC_PCM179X
++++ help
++++ Enable support for Texas Instruments PCM179x CODEC.
++++ Select this if your PCM179x is connected via an SPI bus.
config SND_SOC_PCM3008
tristate
snd-soc-ml26124-objs := ml26124.o
snd-soc-nau8825-objs := nau8825.o
snd-soc-pcm1681-objs := pcm1681.o
- - snd-soc-pcm1792a-codec-objs := pcm1792a.o
+ + snd-soc-pcm179x-codec-objs := pcm179x.o
++++snd-soc-pcm179x-i2c-objs := pcm179x-i2c.o
++++snd-soc-pcm179x-spi-objs := pcm179x-spi.o
snd-soc-pcm3008-objs := pcm3008.o
+ + snd-soc-pcm3168a-objs := pcm3168a.o
+ + snd-soc-pcm3168a-i2c-objs := pcm3168a-i2c.o
+ + snd-soc-pcm3168a-spi-objs := pcm3168a-spi.o
snd-soc-pcm512x-objs := pcm512x.o
snd-soc-pcm512x-i2c-objs := pcm512x-i2c.o
snd-soc-pcm512x-spi-objs := pcm512x-spi.o
obj-$(CONFIG_SND_SOC_ML26124) += snd-soc-ml26124.o
obj-$(CONFIG_SND_SOC_NAU8825) += snd-soc-nau8825.o
obj-$(CONFIG_SND_SOC_PCM1681) += snd-soc-pcm1681.o
- - obj-$(CONFIG_SND_SOC_PCM1792A) += snd-soc-pcm1792a-codec.o
+ + obj-$(CONFIG_SND_SOC_PCM179X) += snd-soc-pcm179x-codec.o
++++obj-$(CONFIG_SND_SOC_PCM179X_I2C) += snd-soc-pcm179x-i2c.o
++++obj-$(CONFIG_SND_SOC_PCM179X_SPI) += snd-soc-pcm179x-spi.o
obj-$(CONFIG_SND_SOC_PCM3008) += snd-soc-pcm3008.o
+ + obj-$(CONFIG_SND_SOC_PCM3168A) += snd-soc-pcm3168a.o
+ + obj-$(CONFIG_SND_SOC_PCM3168A_I2C) += snd-soc-pcm3168a-i2c.o
+ + obj-$(CONFIG_SND_SOC_PCM3168A_SPI) += snd-soc-pcm3168a-spi.o
obj-$(CONFIG_SND_SOC_PCM512x) += snd-soc-pcm512x.o
obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o
obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
unsigned int channels = params_channels(params);
- - u32 word_width = snd_pcm_format_width(params_format(params));
+ + u32 word_width = params_width(params);
u32 val_cr4 = 0, val_cr5 = 0;
+ u32 slots = (channels == 1) ? 2 : channels;
+ u32 slot_width = word_width;
int ret;
+ if (sai->slots)
+ slots = sai->slots;
+
+ if (sai->slot_width)
+ slot_width = sai->slot_width;
+
if (!sai->is_slave_mode) {
ret = fsl_sai_set_bclk(cpu_dai, tx,
- 2 * word_width * params_rate(params));
+ slots * slot_width * params_rate(params));
if (ret)
return ret;