Re: [Alsa-devel] new alsa driver for ti omap chip
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(); does sound/drivers/dummy.c makes sense for such a driver ??? the dummy driver is irrelevant to the BUS type, so it makes some sense to read the code :) Takashi --- 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=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
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=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] new alsa driver for ti omap chip
At Thu, 12 Feb 2004 12:22:31 +0100 (CET), Jaroslav wrote: 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). oh yes, it has nothing to do with I2S, of course. sorry for confusion. but, about the SPI mode to control the chip (not DMA transfer), you can still check the files above. Takashi --- 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=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
RE: [Alsa-devel] new alsa driver for ti omap chip
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=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
RE: [Alsa-devel] new alsa driver for ti omap chip
On Thu, 12 Feb 2004, Gupta, Kshitij wrote: 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. So, look to alsa-kernel/i2c directory for examples, how to write a library for such codecs. We prefer to create a library than controlling codecs in the toplevel driver, because we can reuse code later. - Dma Control functions start_dma queue_dma stop_dma ... Exactly. In this case, you may look to any ISA/PCI drivers what the callbacks from midlevel do. If you have a specific question, we are here ;-) 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=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel