[alsa-devel] [PATCH 03/12] add a mc13783 codec driver
Sascha Hauer
s.hauer at pengutronix.de
Wed Nov 25 08:46:31 CET 2009
Hi Mark,
> > +static int mc13783_set_tdm_slot_codec(struct snd_soc_dai *dai,
> > + unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width)
> > +{
> > + struct snd_soc_codec *codec = dai->codec;
> > + unsigned int reg;
> > +
> > + if (slots != 4)
> > + return -EINVAL;
> > +
> > + reg = mc13783_read(codec, PMIC_SSI_NETWORK);
> > +
> > + reg &= ~(0xfff << 0);
> > + reg |= (0x00 << 2); /* primary timeslot RX/TX(?) is 0 */
> > + reg |= (0x01 << 4); /* secondary timeslot TX is 1 */
> > + reg |= (0x01 << 6); /* secondary timeslot RX is 1 */
>
> This appears to be pretty much ignoring the supplied arguments and using
> a fixed configuration?
>
The problem here is that I don't really understand what arguments I
should supply to this function and how to parse them to archieve what I
want.
The MC13783 Voice Codec always uses a network mode to send data. It has
a fixed width of four slots.
PMIC_SSI_NETWORK[2:3] defines the slot for primary transmit/receive
PMIC_SSI_NETWORK[4:5] defines the secondary transmit timeslot
PMIC_SSI_NETWORK[6:7] defines the secondary receive timeslot
The Codec has two channels and it's not primarily desgined to do stereo
Audio. I want to put the primary channel into the first timeslot and
the secondary channel into the second timeslot.
Any idea how to do this correctly?
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the Alsa-devel
mailing list