hi, yeah that's true I2S has not much to with the driver. So there is one more component on the chip called McBSP(Multichannel Buffered serial port) which will actually communicate to the codec chip over I2S protocol. And the DMA can read data from the McBSP recieve and transmit buffers. But still the driver has to do the McBSP configuration. The kind of functionality the driver should provide is
- Codec Control xxx_codec_write xxx_codec_read for reading and writing to the codec control bits. This will be done via SPI interface. - Dma Control functions start_dma queue_dma stop_dma ... And all the ALSA based functions for init, read , write etc..... regards -kshitij -----Original Message----- From: Jaroslav Kysela [mailto:[EMAIL PROTECTED] Sent: Thursday, February 12, 2004 4:53 PM To: Takashi Iwai Cc: Gupta, Kshitij; '[EMAIL PROTECTED]' Subject: Re: [Alsa-devel] new alsa driver for ti omap chip On Thu, 12 Feb 2004, Takashi Iwai wrote: > At Thu, 12 Feb 2004 12:56:04 +0530, > Gupta, Kshitij wrote: > > > > hi, > > > > I am trying to write an alsa driver for a tsc2101 codec on a arm > > based SOC. The control interface between the SOC and the tsc2101 codec is > > via SPI. > > And the data interface is a I2S interface. Can some one suggest a good > > starting point to start such a driver. > > some ALSA drivers use their own i2c functions, although there is a > generic i2c layer on linux kernel. for example, delta.c or ews.c of > ice1712 driver use i2c (SPI) transfer (which calls ak4xxx-adda.c). > but it's rather complex to refer... > > the i2c transfer is really easy to implement. do just like the spec > says. a pseudo code is like below. > > chip_select_low(); > udelay(1); > > for (i = 15; i >= 0; i--) { > set_bit_clock(0); > udelay(1); > if (value_to_send & (1 << i)) > set_bit_data(1); > else > set_bit_data(0); > udelay(1); > set_bit_clock(0); > udelay(1); > } > > chip_select_high(); Note that I2S is not I2C. I2S is used to connect A/D and D/A converters (three wires - clock, l/r word and sample bit). We don't talk directly with any device over this serial bus. I think that the driver must be written for a sound bridge between host and the converters. In case of ARM platform, it's usually an integrated serial controller which can do DMA transfers. So, this I2S question is a bit irrelevant (it's for hardware designers, but not for driver developers). Because I don't know the behaviour of the sound / serial bridge, I cannot suggest a driver, but if it's similar as ARM1100 architecture, then we have already a driver for it. Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project, SuSE Labs ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel