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.

TAS2560: TAS2560 android driver

Part Number: TAS2560

Hi support.

I am working with your TAS2560EVM connected to my custom board. Power source, irq and i2c communications seem to work fine. I am using the driver provided here: https://git.ti.com/cgit/tas256xsw-android/tas2560-android-driver/ But I get the following error while trying to use tinyplay:

tinyplay sdcard/Download/piano2.wav -D 5
[   28.109946] tas2560 3-004c: tas2560_startup
[   28.114288] tas2560 3-004c: tas2560_shutdown
[   28.122316] tas2560 3-004c: tas2560_startup
[   28.126660] tas2560 3-004c: tas2560_hw_params
Playing sample: 2 ch, 48000 hz, 16 bit
[   28.133395] tas2560 3-004c: tas2560_prepare
[   28.137744] tas2560 3-004c: SND_SOC_DAPM_POST_PMU
[   28.142899] tas2560 3-004c: tas2560_mute, 0
[   28.147131] tas2560 3-004c: tas2560_enable power up
[   28.152813] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
[   28.159704] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
[   28.166439] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
[   28.174097] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
[   28.183292] tas2560 3-004c: tas2560_i2c_load_data, mdelay = 2
[   28.190410] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:108, len: 0x04
[   28.199121] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:40, len: 0x04
[   28.207775] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:44, len: 0x04
[   28.216364] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:48, len: 0x04
[   28.225032] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:28, len: 0x04
[   28.233622] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:32, len: 0x04
[   28.242328] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:36, len: 0x04
[   28.251444] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:24, len: 0x04
[   28.260118] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:100, len: 0x04
[   28.269271] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:52, len: 0x04
[   28.277974] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:56, len: 0x04
[   28.288725] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:60, len: 0x04
[   28.297343] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:64, len: 0x04
[   28.305949] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:68, len: 0x04
[   28.313767] tas2560 3-004c: tas2560_enable skip unmute
[   28.319981] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x0b
[   28.327738] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0xff
[   28.335792] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40
[   28.342988] tas2560 3-004c: tas2560_enable enableIRQ
[   28.348090] tas2560 3-004c: tas2560_enable enableIRQ OK
[   28.368223] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
[   28.376103] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
[   28.382990] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
[   28.389214] tas2560 3-004c: IRQ status : 0x0, 0x0
[   28.394640] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
[   28.400902] tas2560 3-004c: PowSts B: 0x0, check again after 10ms
[   28.430356] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
[   28.436568] tas2560 3-004c: irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0
[   28.444202] tas2560 3-004c: tas2560_LoadConfig power down to load config
[   28.451892] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
[   28.459782] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x00
[   28.468254] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
[   28.495244] tas2560 3-004c: tas2560_i2c_load_data, msleep = 10
[   28.501594] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x01
[   28.535526] tas2560 3-004c: tas2560_i2c_load_data, msleep = 20
[   28.541881] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x01
[   28.550854] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:1, VAL: 0x01
[   28.572214] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:73, VAL: 0x0c
[   28.579941] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x33
[   28.588069] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:80, VAL: 0x21
[   28.595838] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:35, VAL: 0x41
[   28.603809] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:36, VAL: 0x80
[   28.615162] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:15, VAL: 0x01
[   28.623041] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:16, VAL: 0x20
[   28.631037] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:17, VAL: 0x00
[   28.638807] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:18, VAL: 0x00
[   28.646626] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:8, VAL: 0x01
[   28.654340] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:13, VAL: 0x08
[   28.662155] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:14, VAL: 0x10
[   28.669923] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:9, VAL: 0x9b
[   28.677183] tas2560 3-004c: tas2560_set_ASI_fmt, 16385
[   28.683774] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:24, mask: 0x3e, val=0x2
[   28.693054] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x1c, val=0x0
[   28.702351] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:22, VAL: 0x00
[   28.709636] tas2560 3-004c: tas2560_set_bit_rate, 16
[   28.716283] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x3, val=0x0
[   28.724839] tas2560 3-004c: tas2560_LoadConfig power up
[   28.730476] tas2560 3-004c: tas2560_dev_write, ERROR, L=123, E=-6
[   28.736673] tas2560 3-004c: irq_work_routine, start timer
[   33.763707] tas2560 3-004c: tas2560_dev_write, ERROR, L=123, E=-11
[   33.769907] tas2560 3-004c: tas2560_LoadConfig power down to load config
[   33.776940] tas2560 3-004c: tas2560_dev_write, ERROR, L=123, E=-11
[   33.783179] tas2560 3-004c: irq_work_routine, start timer
[   34.582413] tas2560 3-004c: tas2560_mute, 1
[   34.586638] tas2560 3-004c: tas2560_enable power down
[   34.592123] tas2560 3-004c: tas2560_dev_write, ERROR, L=123, E=-11
[   34.598386] tas2560 3-004c: tas2560_shutdown
[   39.787564] tas2560 3-004c: SND_SOC_DAPM_POST_PMD

I haven't created any audio cfg with your PPC3 tool, as this driver does not seem to read any configuration file. Is this the right approach?

Is the error related to the missing configuration file?

Should I use this driver instead?: https://git.ti.com/cgit/tas2557sw-android/tas2559-android-driver/

Regards
Ivonne Nieto

  • Hello Ivonne, 

    Our team is looking into this thread and will respond as soon as possible. 

    Best Regards, 

    Justin Beigel

  • Hi Justin, do you have any feedback on this subject?

    Currently our board does not connect a specific reset gpio to the TAS2560EVM (is directly connected to our POR), would this be affecting the functionality of the driver?

    Regards
    Ivonne Nieto

  • Hello Ivonne, 

    I am still working with our firmware team to look into this issue. I would not expect the reset to be an issue but I will be sure to keep that in mind as we work on this. 

    Best Regards, 

    Justin Beigel

  • Before using tinyplay, the i2s clk should be ready. TAS2560 use external dsp to run the spk protection, so without ppc3 tool, it can run in ROM mode or bypass mode. 

  • The reset pin should be always in inactive mode. If not, the chip can't work.

  • Hi Shenghao, the reset is pin is inactive mode. I have also done a little rework, and now I have the reset pin wired to a gpio and is being properly driven by the driver, but the critical error is still happening.

  • Hi , thanks for the pointer, I made it sure to have my i2s clock always enabled, the irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0 is still there, but the log changed, I no longer see:

    tas2560_dev_write, ERROR, L=123, E=-6

    And the log is larger now (all the time the song is trying to reproduce)

    Eventually I get:

    tinyplay sdcard/Download/piano2.wav -D 5                          
    Playing sample: 2 ch, 48000 hz, 16 bit
    Error playing sample

    I noticed that although I am playing a 6 seconds audio, the timeout happens 12 seconds later.

    Also, I only have 1 tas2560 IC, and I am using the android mono driver, but when I try to reproduce a mono audio, I get the following error:

    Sample is 1 channels, device only supports >= 2 channels

    Right now I have been testing using 48kHz rate, and my i2s clock is set to 1536000Hz.

    Attached is the new log

    tas2560.log

    Regards
    Ivonne Nieto

  • Hi Ivonne,

    We'll take a look at your latest updates and provide further comments as soon as possible,

    Best regards,
    -Ivan Salazar
    Applications Engineer- Low Power Audio & Actuators

  • Hi Ivonne

    Pls use stereo audio file to tinyplay, in spite of mono appliacation. During playing, pls dump the register

    command as follow

    i2cset -y -f 0 4c 0 0
    i2cset -y -f 0 4c 7f 0
    i2cset -y -f 0 4c 0 0
    i2cdump -y -f 0 4c
    PS:
    0 is i2c bus no
    4c is 7-bit i2c device address
  • Sorry for the delay

    This is the printout:

    :/ # tinyplay sdcard/Download/pcm_stereo_16_bit_44.1kHz.wav -D 5 &
    [1] 4216
    control4:/ # Playing sample: 2 ch, 44100 hz, 16 bit
    i2cset -y -f 3 0x4c 0x0 0x0
    :/ # i2cset -y -f 3 0x4c 0x7f 0x0
    :/ # i2cset -y -f 3 0x4c 0x0 0x0
    :/ # i2cdump -y -f 3 0x4c
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 01 20 5f 00 00 00 01 83 02 00 00 08 10 01    ..? _...???..???
    10: 20 00 00 0b 02 00 00 00 02 00 00 00 7f 00 00 00     ..??...?...?...
    20: 00 00 00 00 54 00 00 00 91 00 00 32 03 00 00 00    ....T...?..2?...
    30: 00 00 07 44 00 00 32 10 00 00 00 20 33 0a 00 00    ..?D..2?... 3?..
    40: 00 00 00 00 00 00 00 00 05 0c 00 02 13 00 00 00    ........??.??...
    50: 21 00 00 00 8c 03 01 00 03 06 07 81 00 80 00 00    !...???.????.?..
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 00 00 00 00 00 00 60 00 00 07 00 02 00    .........`..?.?.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 XX XX XX XX XX XX XX XX    ........XXXXXXXX
    c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    e0: XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00    XXXXXXXXXXXX....
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    :/ # Error playing sample

    I was wondering, is there any register guide that I can check?

    Regards
    Ivonne

  • Why register 2 is 0x01 instead of 0x00, this means chip in power off. Are you sure chip is power on?

  • I manually set the register to 0, and try to play audio. The log shows the same, at the end I dump the registers and it's back to 1.

    This is the error that I get when I try to power on with tinymix:
    :/ # tinymix -D 5 'TAS2560 PowerCtrl' 1                                
    [  241.552601] tas2560 3-004c: tas2560_power_ctrl_get = 0x0
    [  241.557963] tas2560 3-004c: tas2560_enable power up
    [  241.563597] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
    [  241.570429] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
    [  241.577129] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
    [  241.584762] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  241.593914] tas2560 3-004c: tas2560_i2c_load_data, mdelay = 2
    [  241.607254] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:108, len: 0x04
    [  241.615895] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:40, len: 0x04
    [  241.624384] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:44, len: 0x04
    [  241.632928] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:48, len: 0x04
    [  241.641477] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:28, len: 0x04
    [  241.650021] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:32, len: 0x04
    [  241.658570] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:36, len: 0x04
    [  241.667598] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:24, len: 0x04
    [  241.676149] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:100, len: 0x04
    [  241.685264] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:52, len: 0x04
    [  241.693815] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:56, len: 0x04
    [  241.702358] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:60, len: 0x04
    [  241.710909] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:64, len: 0x04
    [  241.719452] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:68, len: 0x04
    [  241.727211] tas2560 3-004c: tas2560_enable unmute
    [  241.732924] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x0b
    [  241.740647] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0xff
    [  241.748366] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40
    [  241.755516] tas2560 3-004c: tas2560_enable enableIRQ
    [  241.760505] tas2560 3-004c: tas2560_enable enableIRQ OK
    control4:/ # [  241.776257] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  241.784184] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
    [  241.790979] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
    [  241.797188] tas2560 3-004c: IRQ status : 0x0, 0x0
    [  241.802513] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  241.808718] tas2560 3-004c: PowSts B: 0x0, check again after 10ms
    [  241.838791] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  241.844985] tas2560 3-004c: irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0
    [  241.852578] tas2560 3-004c: tas2560_LoadConfig power down to load config
    [  241.859792] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  241.867508] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x00
    [  241.875234] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  241.899716] tas2560 3-004c: tas2560_i2c_load_data, msleep = 10
    [  241.906047] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x01
    [  241.939996] tas2560 3-004c: tas2560_i2c_load_data, msleep = 20
    [  241.946327] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x01
    [  241.981428] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:1, VAL: 0x01
    [  242.000203] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:73, VAL: 0x0c
    [  242.007967] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x33
    [  242.015682] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:80, VAL: 0x21
    [  242.023405] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:35, VAL: 0x41
    [  242.031121] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:36, VAL: 0x80
    [  242.038843] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:15, VAL: 0x01
    [  242.046560] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:16, VAL: 0x20
    [  242.054282] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:17, VAL: 0x00
    [  242.061998] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:18, VAL: 0x00
    [  242.069720] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:8, VAL: 0x01
    [  242.077349] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:13, VAL: 0x08
    [  242.085072] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:14, VAL: 0x10
    [  242.092788] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:9, VAL: 0x9b
    [  242.099939] tas2560 3-004c: tas2560_set_ASI_fmt, 16385
    [  242.106172] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:24, mask: 0x3e, val=0x2
    [  242.115402] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x1c, val=0x0
    [  242.124507] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:22, VAL: 0x00
    [  242.131743] tas2560 3-004c: tas2560_set_bit_rate, 16
    [  242.137799] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x3, val=0x0
    [  242.146338] tas2560 3-004c: tas2560_LoadConfig power up
    [  242.152046] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
    [  242.159673] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  242.168824] tas2560 3-004c: tas2560_i2c_load_data, mdelay = 2
    [  242.175873] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:108, len: 0x04
    [  242.184496] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:40, len: 0x04
    [  242.193039] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:44, len: 0x04
    [  242.201574] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:48, len: 0x04
    [  242.210116] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:28, len: 0x04
    [  242.218654] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:32, len: 0x04
    [  242.227195] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:36, len: 0x04
    [  242.236229] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:24, len: 0x04
    [  242.244766] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:100, len: 0x04
    [  242.253880] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:52, len: 0x04
    [  242.262415] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:56, len: 0x04
    [  242.270958] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:60, len: 0x04
    [  242.279494] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:64, len: 0x04
    [  242.288038] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:68, len: 0x04
    [  242.296758] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x0b
    [  242.304480] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0xff
    [  242.312196] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40
    [  242.319349] tas2560 3-004c: irq_work_routine, start timer
    [  242.332206] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  242.340092] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
    [  242.346886] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
    [  242.353082] tas2560 3-004c: IRQ status : 0x0, 0x0
    [  242.358396] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  242.364592] tas2560 3-004c: PowSts B: 0x0, check again after 10ms
    [  242.388603] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  242.394793] tas2560 3-004c: irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0
    [  242.402354] tas2560 3-004c: tas2560_LoadConfig power down to load config
    [  242.409551] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  242.417272] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x00
    [  242.424988] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  242.451995] tas2560 3-004c: tas2560_i2c_load_data, msleep = 10
    [  242.458324] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x01
    [  242.491976] tas2560 3-004c: tas2560_i2c_load_data, msleep = 20
    [  242.498306] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x01
    [  242.537639] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:1, VAL: 0x01
    [  242.562385] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:73, VAL: 0x0c
    [  242.570110] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x33
    [  242.577833] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:80, VAL: 0x21
    [  242.585549] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:35, VAL: 0x41
    [  242.593271] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:36, VAL: 0x80
    [  242.600987] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:15, VAL: 0x01
    [  242.608709] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:16, VAL: 0x20
    [  242.616425] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:17, VAL: 0x00
    [  242.624146] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:18, VAL: 0x00
    [  242.631870] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:8, VAL: 0x01
    [  242.639499] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:13, VAL: 0x08
    [  242.647220] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:14, VAL: 0x10
    [  242.654936] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:9, VAL: 0x9b
    [  242.662087] tas2560 3-004c: tas2560_set_ASI_fmt, 16385
    [  242.668373] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:24, mask: 0x3e, val=0x2
    [  242.677610] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x1c, val=0x0
    [  242.686722] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:22, VAL: 0x00
    [  242.693957] tas2560 3-004c: tas2560_set_bit_rate, 16
    [  242.700042] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x3, val=0x0
    [  242.708576] tas2560 3-004c: tas2560_LoadConfig power up
    [  242.714356] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
    [  242.721985] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  242.731136] tas2560 3-004c: tas2560_i2c_load_data, mdelay = 2
    [  242.738156] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:108, len: 0x04
    [  242.746782] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:40, len: 0x04
    [  242.755318] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:44, len: 0x04
    [  242.763859] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:48, len: 0x04
    [  242.772376] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:28, len: 0x04
    [  242.780912] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:32, len: 0x04
    [  242.789455] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:36, len: 0x04
    [  242.798474] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:24, len: 0x04
    [  242.807017] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:100, len: 0x04
    [  242.816169] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:52, len: 0x04
    [  242.824705] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:56, len: 0x04
    [  242.833247] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:60, len: 0x04
    [  242.841791] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:64, len: 0x04
    [  242.850340] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:68, len: 0x04
    [  242.859068] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x0b
    [  242.866790] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0xff
    [  242.874506] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40
    [  242.881660] tas2560 3-004c: irq_work_routine, start timer
    [  242.896202] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  242.904089] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
    [  242.910883] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
    [  242.917079] tas2560 3-004c: IRQ status : 0x0, 0x0
    [  242.922475] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  242.928666] tas2560 3-004c: PowSts B: 0x0, check again after 10ms
    [  242.958806] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  242.965006] tas2560 3-004c: irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0
    [  242.972571] tas2560 3-004c: tas2560_LoadConfig power down to load config
    [  242.979773] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  242.987489] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x00
    [  242.995210] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  243.019715] tas2560 3-004c: tas2560_i2c_load_data, msleep = 10
    [  243.026045] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x01
    [  243.059978] tas2560 3-004c: tas2560_i2c_load_data, msleep = 20
    [  243.066308] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x01
    [  243.110770] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:1, VAL: 0x01
    [  243.128204] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:73, VAL: 0x0c
    [  243.136042] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x33
    [  243.143776] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:80, VAL: 0x21
    [  243.151491] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:35, VAL: 0x41
    [  243.159213] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:36, VAL: 0x80
    [  243.166930] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:15, VAL: 0x01
    [  243.174653] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:16, VAL: 0x20
    [  243.182368] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:17, VAL: 0x00
    [  243.190091] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:18, VAL: 0x00
    [  243.197807] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:8, VAL: 0x01
    [  243.205441] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:13, VAL: 0x08
    [  243.213158] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:14, VAL: 0x10
    [  243.220880] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:9, VAL: 0x9b
    [  243.228026] tas2560 3-004c: tas2560_set_ASI_fmt, 16385
    [  243.234324] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:24, mask: 0x3e, val=0x2
    [  243.243549] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x1c, val=0x0
    [  243.252661] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:22, VAL: 0x00
    [  243.259893] tas2560 3-004c: tas2560_set_bit_rate, 16
    [  243.266022] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x3, val=0x0
    [  243.274557] tas2560 3-004c: tas2560_LoadConfig power up
    [  243.280339] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
    [  243.287971] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  243.297117] tas2560 3-004c: tas2560_i2c_load_data, mdelay = 2
    [  243.304171] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:108, len: 0x04
    [  243.312794] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:40, len: 0x04
    [  243.321336] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:44, len: 0x04
    [  243.329872] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:48, len: 0x04
    [  243.338414] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:28, len: 0x04
    [  243.346949] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:32, len: 0x04
    [  243.355490] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:50:36, len: 0x04
    [  243.364559] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:24, len: 0x04
    [  243.373097] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:51:100, len: 0x04
    [  243.382208] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:52, len: 0x04
    [  243.390744] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:56, len: 0x04
    [  243.399288] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:60, len: 0x04
    [  243.407870] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:64, len: 0x04
    [  243.416375] tas2560 3-004c: tas2560_dev_bulk_write: BOOK:PAGE:REG 0:52:68, len: 0x04
    [  243.425094] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x0b
    [  243.432815] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0xff
    [  243.440531] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40
    [  243.447683] tas2560 3-004c: irq_work_routine, start timer
    [  243.464682] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  243.472519] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:38
    [  243.479320] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:39
    [  243.485512] tas2560 3-004c: IRQ status : 0x0, 0x0
    [  243.490891] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  243.497082] tas2560 3-004c: PowSts B: 0x0, check again after 10ms
    [  243.526778] tas2560 3-004c: tas2560_dev_read: BOOK:PAGE:REG 0:0:42
    [  243.532978] tas2560 3-004c: irq_work_routine, Critical ERROR B[0]_P[0]_R[42]= 0x0
    [  243.540539] tas2560 3-004c: tas2560_LoadConfig power down to load config
    [  243.547771] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:37, VAL: 0x00
    [  243.555487] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:33, VAL: 0x00
    [  243.563208] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x41
    [  243.587716] tas2560 3-004c: tas2560_i2c_load_data, msleep = 10
    [  243.594048] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x01
    [  243.627981] tas2560 3-004c: tas2560_i2c_load_data, msleep = 20
    [  243.634311] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x01
    ^C
    130|control4:/ # [  243.670814] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:1, VAL: 0x01
    [  243.688467] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:73, VAL: 0x0c
    [  243.698612] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x33
    [  243.706338] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:80, VAL: 0x21
    [  243.714061] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:35, VAL: 0x41
    [  243.721777] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:36, VAL: 0x80
    [  243.729500] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:15, VAL: 0x01
    [  243.737217] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:16, VAL: 0x20
    [  243.744940] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:17, VAL: 0x00
    [  243.752656] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:18, VAL: 0x00
    [  243.760378] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:8, VAL: 0x01
    [  243.768113] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:13, VAL: 0x08
    [  243.775874] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:14, VAL: 0x10
    [  243.783590] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:9, VAL: 0x9b
    [  243.790741] tas2560 3-004c: tas2560_set_ASI_fmt, 16385
    [  243.796977] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:24, mask: 0x3e, val=0x2
    [  243.806207] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x1c, val=0x0
    [  243.815310] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:22, VAL: 0x00
    [  243.822547] tas2560 3-004c: tas2560_set_bit_rate, 16
    [  243.829024] tas2560 3-004c: tas2560_dev_update_bits: BOOK:PAGE:REG 0:0:20, mask: 0x3, val=0x0
    [  243.837567] tas2560 3-004c: tas2560_LoadConfig power up
    [  243.843368] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:2, VAL: 0x02
    ...

    I don't know the registers, is there any documentation where I can review them?

    Regards
    Ivonne Nieto

  • From the log, all the control flow and register setting are fine.

    From register dump, why still b0p0r7bit[7:6] is 0, which means the chip is powered down, 

    while the log told me it it set to 0x40, see following quote.

    [  243.440531] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40

    And b0p0r0X2D is 0, are you sure the Vbat connection is fine? See the attachment.

  • Hi Shenghao.

    Sorry for the late reply, I see 5v in Vbat and J2 is connected.

    From your previous message:

    From register dump, why still b0p0r7bit[7:6] is 0, which means the chip is powered down, 

    while the log told me it it set to 0x40, see following quote.

    [  243.440531] tas2560 3-004c: tas2560_dev_write: BOOK:PAGE:REG 0:0:7, VAL: 0x40

    I realized that any of the i2c configurations stick, but if I write them manually using i2set, they do.
    I'll debug the part of the driver where the registers are being set, and update with any findings I may  have.

    Regards
    Ivonne Nieto

  • Kindly check whether the I2s clk(both bck and WS clk) is stable during power on

  • Hi Shenghao.

    I double check my i2c communication, and everything is ok.

    Also Vbatt is connected to 5V, and I have IOvdd (j30) to 3.3v.

    I tried to power up the device with and without boost, and reproduce Mode 2 96k that does not support battery guard, brownout, and class-H. But still no luck.

    I will check the i2s signal thoroughly as suggested.

    Regards
    Ivonne Nieto

  • Hi Ivonne,

    Please let us know your finding around I2S, we'll keep looking into this thread.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • Hi Ivan, I am indeed having issues to enable i2s in a stable manner.

    We are currently looking into this issue, Regards

  • Hi Ivonne,

    Thanks for the details, let us know how testing goes.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • Sorry for the late reply, due to some other priorities this has been delayed. We have not been able to get the i2c clock signal working, probably due to some HW reworks. However, it's been discussed and customer would like to move on with another IC from the TI family.

    Thanks for all your help. I think you can mark down this thread as closed as we will not longer work with this specific IC.

  • Hi Ivonne, Thanks for the notice, just for completeness are they moving to analog input amplifiers?

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • To another of your digital input class-D amplifiers

  • Understood, thanks for your inputs, I'm closing this thread now.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators