imx28: issue sgtl5000 over i2c as one of slave

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx28: issue sgtl5000 over i2c as one of slave

1,323 Views
shashikanthirem
Contributor III
Hi All,
we are some i2c issue in multi-slave environment,
Device : Freescale imx28 processor
BSP: Linux kernel version 2.6.35.3
my imx28 product have two i2c slaves,
1. sgtl5000 chip as a slave for audio play device from application.
2. i2c slaves which does a job of processing i2c data received from imx28(master through i2c query) to serial data with baud 9600 and vice-versa.
Observations:
a. Things are normal if the i2c query has a data range (0x0000 to 0x0a7f) and (0x0b00 - 0xffff) with audio and second i2c slave.

b. Things are going abnormal when the second slave has a i2c data exchange which has a range 0x0a80 to 0x0aff.
To root cause the issue I had disable the audio driver for sgtl50000 LTIB environment, then the second slave works in all data range, problem is audio does not work.
I have attached the supported log, which has i2c probe analyzer, driver file, and seen  many patches regarding sgtl5000, which are not compatible with my Linux kernel version 2.6.35.3, if anyone face similar issue or some i2c expert / NXPf  forum, please provide input in getting resolved.

Thanks & Regards,
Anith
 
Labels (2)
7 Replies

1,101 Views
shashikanthirem
Contributor III

We disable the audio driver from menu config in kernel, the data range above works fine,

Hence we came up near  to solution:sgtl5000_i2c_hang.png

a. Master has sent NAK but before sending STOP bit SDA line is held low by either master, sgtl5000 or other i2c slave with address 0x1e/0x1f

b. but after disabling audio driver, i2c transaction  working  well with all this i2c data 0x0a80-- 0x0aFF including this range, no bus error is observed kept under long run 1 day test

Anyone please provide solution for further move. still stuck here

0 Kudos

1,101 Views
shashikanthirem
Contributor III

That SPI communication can't do right now, 

0 Kudos

1,101 Views
igorpadykov
NXP Employee
NXP Employee

if both i2c slaves have identical address, they will not work well.

0 Kudos

1,101 Views
shashikanthirem
Contributor III

Both slave address are different 0x0A & 0x0F.

0 Kudos

1,101 Views
igorpadykov
NXP Employee
NXP Employee

Hi  shashikant

one can try to narrow down issue (check if this is caused by linux)

testing with baremetal sgtl5000 obds test (audio folder)

On-Board Diagnostic Suit for the i.MX28 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,101 Views
shashikanthirem
Contributor III

Yes this is caused by Linux confirmed by removing the sgtl5000 chip, then ran the both i2c application, everything is normal,

1. if i2c ran on either if slave  runs perfectly,

2. If second slave only ran then perfect

3.if sgtl5000 chip only ran then perfect

4. When both ran, then only problem...

0 Kudos

1,101 Views
igorpadykov
NXP Employee
NXP Employee

one can recheck that i2c address is different for both slaves and use for example

spi option for other slave.

Best regards
igor

0 Kudos