Other Parts Discussed in Thread: DM3730
Is there a Linux driver available for enabling I2S on the DM3730? The I2S device is a MEMS microphone (ADMP441).
Thanks in advance.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: DM3730
Is there a Linux driver available for enabling I2S on the DM3730? The I2S device is a MEMS microphone (ADMP441).
Thanks in advance.
Hi Peter,
In the TI's linux distributions does not presents does not present particular driver for ADMP441 but you can look at some similar driver in folder ../linux/sound/drivers.
I suggest you the attached article for example about how to write an AXI I2S Linux Driver.
BR
Tsvetolin Shulev
This file:
sound/soc/xlnx/zed_adau1761.c ? https://github.com/lclausen-adi/linux-2.6/blob/adv7511_zynq/sound/soc/xlnx/zed_adau1761.c .
Or this one?
sound/soc/xlnx/axi-i2s.c : https://github.com/lclausen-adi/linux-2.6/blob/adv7511_zynq/sound/soc/xlnx/axi-i2s.c .
Hi Peter,
I'm trying to get the ADMP441 microphone working with DM8148 processor - I've just started looking at this and seen your post.
Did you get the I2S interface working?
William.
Hi Peter
I am also trying to connect Digital MIC ( SPH0645LM4H-B ) with TI base platform.
Are you succeeded in I2S interface driver working?
Thanks and Regards
Nishith
Nishith, Do you see this E2E post?: https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/278695 . There are links to the i2C Drivers.
I2C is a key driver which may be enabled in the default configuration : http://processors.wiki.ti.com/index.php/TI81XX_PSP_User_Guide#TI814X_2
For I2C you can have a look:
DM814x TRM, chapter 15 Inter-Integrated Circuit (I2C) Controller Module
I2C driver: <kernel_source>drivers/i2c/busses/i2c-davinci.c.
http://processors.wiki.ti.com/index.php/I2C_Tips
http://processors.wiki.ti.com/index.php/TI81XX_PSP_TouchScreen_Driver_Guide
Also you can check the example CCS test for I2C, available from the Mistral website. There you can find DM8148 EVM CCStudio tests with I2C for Base Board and expansion I/O board.
http://www.mistralsolutions.com/pes-support/support-downloads/tmdxevm8148.html
Software -> Base Board and Software -> Expansion I/O Board
Nishith,
The Knowles datasheet ( www.knowles.com/eng/Products/Advanced-audio-solutions/I2s-Table/SPH0645LM4H-B )describes the i2S interface requirements:
Interface Description: The SPH0645LM4H microphone operates as an I2S slave. The master must provide the BCLK and WS signals. The Over Sampling Rate is fixed at 64 therefore the WS signal must be BCLK/64 and synchronized to the BCLK. Clock frequencies from 2.048Mhz to 4.096MHz are supported so sampling rates from 32KHz to 64KHz can be had by changing the clock frequency. The Data Format is I2S, 24 bit, 2’s compliment, MSB first. The Data Precision is 18 bits, unused bits are zeros. The SEL pin determines when the microphone drives the Data pin. When SEL=H the Data pin is driven when the WS=H, otherwise it is tri-stated (high impedance). When operating a single microphone on an I2S bus, a pull down resistor (100K Ohms) should be placed from the Data pin to ground to insure the bus capacitance is discharged
It should be rather straightforward to set up an i2S receiving/processing routine based on this information.
~Leonard
Hi Nishith,
I am working on the very same thing...
As I understand, the kernel drivers are already there "davinci-i2s", "davinci-mcasp", ALSA sound interface
Not quite figured out all the details to setup the device tree overlay
Lets keep in touch, do you have it working already?