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.

TLV320AIC3204: Not able to see the data IN from the coded

Part Number: TLV320AIC3204

Tool/software:

Dear  TI 

We are using TLV320AIC3204   like below which shows the MFP1 , MFP2 , MFP3 , MFP4 and MFP5 configuration

 

Based on this  and  Application note TLV320AIC3204 Application Reference Guide  we set the register with following value 
we have 2 problem :-

1.  When we  run arecord -D hw:0,0 -r 96000 -c 2 -f s32_le /userdata/audio_test.wav   we dont see any output in the Sout  codec in oscilloscope 
2.  When we run the aplay -D plughw:0,0 file_example_WAV_1MG_test.wav  we see output in oscilloscope  but our speaker does not give any sound 

3.  With the below configuration we are getting below error as well 

root@rk3576-buildroot:/userdata# alsamixer
cannot load mixer controls: Operation not permitted
root@rk3576-buildroot:/userdata#

&i2c3 {
+       pinctrl-0 = <&i2c3m0_xfer>;
+       status = "okay";
+       clock-frequency = <400000>;
+               status = "okay";
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               clocks = <&mclkout_sai0>;
+               clock-names = "mclk";
+               assigned-clocks = <&mclkout_sai0>;
+               assigned-clock-rates = <6140000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sai0m2_mclk>;
+               reset-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
+               aic32x4-gpio-func= <
+                       0x02 /* MFP1 AIC32X4_MFPX_DEFAULT_VALUE */
+                       0x12 /* MFP2 AIC32X4_MFPX_DEFAULT_VALUE */
+                       0x02 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
+                       0x0E /* AIC32X4_MFPX_DEFAULT_VALUE */
+                       0x00 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
+               >;
+       };
+};

4.  If I keep below configuration Alsa mixer command works fine  but still we see issue 1 and 2 

a

aic32x4-gpio-func= <
0xff /* AIC32X4_MFPX_DEFAULT_VALUE /
0xff / AIC32X4_MFPX_DEFAULT_VALUE /
0x04 / MFP3 AIC32X4_MFP3_GPIO_ENABLED /
0xff / AIC32X4_MFPX_DEFAULT_VALUE /
0x08 / MFP5 AIC32X4_MFP5_GPIO_INPUT */

5.  I have done the register dump of all possible register please review and let me know what should be correct configuration 

[  326.612580] {0x1,0},
[  326.613014] {0x4,3},
[  326.613385] {0x5,11},
[  326.613780] {0x6,4},
[  326.614148] {0x7,0},
[  326.614548] {0x8,0},
[  326.614953] {0xb,1},
[  326.615323] {0xc,1},
[  326.615691] {0xd,0},
[  326.616060] {0xe,80},
[  326.616455] {0x12,1},
[  326.616823] {0x13,1},
[  326.617191] {0x14,80},
[  326.617561] {0x19,0},
[  326.617929] {0x1a,1},
[  326.618298] {0x1b,0},
[  326.618675] {0x1c,0},
[  326.619044] {0x1d,1},
[  326.619413] {0x1e,1},
[  326.619800] {0x1f,0},
[  326.620169] {0x20,0},
[  326.620541] {0x21,0},
[  326.620939] {0x22,0},
[  326.621308] {0x24,44},
[  326.621689] {0x25,0},
[  326.622086] {0x26,0},
[  326.622489] {0x2a,0},
[  326.622876] {0x2b,0},
[  326.623246] {0x2c,0},
[  326.623637] {0x2d,0},
[  326.624005] {0x2e,0},
[  326.624273] {0x2f,0},
[  326.624542] {0x30,0},
[  326.624812] {0x31,0},
[  326.625082] {0x34,0},
[  326.625351] {0x35,12},
[  326.625620] {0x36,3},
[  326.625890] {0x37,e},
[  326.626184] {0x38,2},
[  326.626462] {0x3c,1},
[  326.626786] {0x3d,1},
[  326.627056] {0x3f,14},
[  326.627325] {0x40,c},
[  326.627631] {0x41,0},
[  326.627902] {0x42,0},
[  326.628170] {0x43,0},
[  326.628462] {0x44,6f},
[  326.628731] {0x45,38},
[  326.629000] {0x46,0},
[  326.629268] {0x47,0},
[  326.629566] {0x48,0},
[  326.629835] {0x49,0},
[  326.630105] {0x4a,0},
[  326.630397] {0x4b,ee},
[  326.630680] {0x4c,10},
[  326.630953] {0x4d,d8},
[  326.631223] {0x4e,7e},
[  326.631502] {0x4f,e3},
[  326.631773] {0x51,0},
[  326.632043] {0x52,88},
[  326.632334] {0x53,0},
[  326.632605] {0x54,0},
[  326.632875] {0x55,0},
[  326.633146] {0x56,0},
[  326.633436] {0x57,0},
[  326.633706] {0x58,7f},
[  326.633976] {0x59,0},
[  326.634266] {0x5a,0},
[  326.634538] {0x5b,0},
[  326.634812] {0x5c,0},
[  326.635083] {0x5d,0},
[  326.635371] {0x5e,0},
[  326.635640] {0x5f,0},
[  326.635908] {0x60,7f},
[  326.636202] {0x61,0},
[  326.636473] {0x62,0},
[  326.636743] {0x63,0},
[  326.637012] {0x64,0},
[  326.637305] {0x65,0},
[  326.637574] {0x66,0},
[  326.637844] {0x67,0},
[  326.638133] {0x68,0},
[  326.638405] {0x69,0},
[  326.638704] {0x6a,0},
[  326.639079] {0x6b,0},
[  326.639349] {0x6c,0},
[  326.639621] {0x6d,0},

6.   Also  I am getting below  log in Linux kernel which says that my regmap is getting failed , i commented it so that my driver can further load .. but i2cdump command works file and device can be detected in address 0x18

 Please find the i2cdump attached

..

root@rk3576-buildroot:~# i2cdump -f -y 3 0x18 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 60 00 00 11 04 00 00 00 00 01 01 00 80 02    ..`..??....??.??
10: 00 08 01 01 80 01 00 04 00 00 01 00 00 00 01 00    .?????.?..?...?.
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 12 03 02 02 00 00 00 01 01 00 14    .....????...??.?
40: 0c 00 00 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?...o8.....???~?
50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
60: 7f 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 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 

Problem Log from I2c  in driver probe 

  ret = regmap_write(regmap, AIC32X4_RESET, 0x01);
    if (ret) {
        dev_err(dev, "***********####Failed to write regmap %d\n",ret);
        goto err_disable_regulators;
    }
  • Dear TI Please help to debug this issue , your response will be appreciated 

  • Hi Nitin,

    There are a lot of potential things that may be causing these problems, let's work through them one at a time.

    First, the gpio func configuration - I see in tlv320aic32x4.h in include/sound in the linux kernel that these are the defined "GPIO API" constants - these look like the only allowed values for these so trying to set to other values may cause errors.

    Next, to enable output from the line out, you will need to enable the proper routing in the dts file. But, what do you mean you get output in the oscilloscope but not in the speaker? Are you measuring line out and getting signal on the oscilloscope? If that is the case, then something is wrong with your amplifier setup, but I cannot see that part of your schematic in the screenshot you posted. 

    Another thing I notice is that your register map and dump are different - is the i2cdump taken when it fails the initialization, and the register map is your intended writes? Can you explain more about the order that these happen in and what they mean.

    Let me know about these questions.

    Best,
    Mir

  • Hi Mir 

    Good Morning ! 


    Thank you  for replying to this post.
    yes, I agree with you that we need to debug this one by one .. before that  i wanted to share some progress which we made yesterday.
    with the help of alsamixer  gui tool we changed some setting of our audio and below is the result 

    1.   Playback Mode :- 
           
             Problem :- the setup we connected Now 2 speaker and only Left Speaker is working. Right Speaker is not working
             command: -   aplay -D plughw:0,0 file_example_WAV_1MG_test.wav
             Attachment: - i2cdump-for-playback.txt I am attaching the fresh I2c dump before and after play. (i2cdump -fy  3 0x18)

    2. Capture Mode :-

           Problem :-  Sound is very feeble . our requirement is capture from 3 meter distence
            the first step I did some changes in Capture Setting in alsamixer gui  tool and dump i2c output in i2cdump-for-playback.txt
            command: -  arecord -D hw:0,0 -r 96000 -c 2 -f s32_le /userdata/audio_test.wav 
             Attachment:-  audio_test.wav  and i2cdump-for-playback.txt

    3.  I can still See the regmap issue from the driver not sure why its coming even though we have i2c working.


    Can you please guide to review the alsa mixer gui command or any command which can help to capture in higvolum and enable Right speaker ?

    Also I am attaching the more snap shot  for your reference 

    ================I2cdump 0 page before Capture =======================================
    root@rk3576-buildroot:~# i2cdump -fy  3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 00 00 10 00 00 08 08    ?..??......?..??
    10: 7a 7a 1b 1b 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 55 00 14 55 00 14 00 55 55 00 00 00    ....U.?U.?.UU...
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    
    ================I2cdump 0 page during capture =======================================
    root@rk3576-buildroot:~# i2cdump -fy  3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 91 03 1d 4c 00 00 83 85 00 40 02    ..`.????L..??.@?
    10: 00 08 85 83 40 01 00 04 00 00 01 30 00 01 81 00    .???@?.?..?0.??.
    20: 00 00 00 00 66 00 11 00 00 00 e0 00 00 20 00 60    ....f.?...?.. .`
    30: 00 00 00 00 08 12 03 02 04 00 00 00 09 01 00 14    ....?????...??.?
    40: 0c 0a 0a 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ???.o8.....???~?
    50: 00 c0 00 28 28 00 81 44 75 20 20 02 01 75 81 44    .?.((.?Du  ??u?D
    60: 75 20 20 02 01 75 00 00 00 00 00 00 00 00 00 00    u  ??u..........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    
    


    ================I2cdump 0 page before playback=======================================
    root@rk3576-buildroot:~# i2cdump -fy  3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 11 09 00 00 00 00 09 02 00 80 02    ..`.???....??.??
    10: 00 08 09 02 80 01 00 04 00 00 01 00 00 01 04 00    .?????.?..?..??.
    20: 00 00 00 00 66 00 11 00 00 00 ee 00 00 60 00 60    ....f.?...?..`.`
    30: 00 00 00 00 08 12 03 02 04 00 00 00 01 01 00 14    ....?????...??.?
    40: 0c 30 30 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?00.o8.....???~?
    50: 00 00 00 28 28 00 93 12 7f 00 00 09 01 7f 93 12    ...((.???..?????
    60: 7f 00 00 09 01 7f 00 00 00 00 00 00 00 00 00 00    ?..???..........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    
    
    ================I2cdump 0 page after playback=======================================
    
    root@rk3576-buildroot:~# i2cdump -fy  3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 91 09 00 00 00 00 89 82 00 80 02    ..`.???....??.??
    10: 00 08 89 82 80 01 00 04 00 00 01 00 00 01 84 00    .?????.?..?..??.
    20: 00 00 00 00 66 cc 11 00 00 00 e0 00 00 00 00 60    ....f??...?....`
    30: 00 00 00 00 08 12 03 02 04 00 00 00 01 01 00 d4    ....?????...??.?
    40: 00 30 30 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    .00.o8.....???~?
    50: 00 00 00 28 28 00 93 12 7f 00 00 09 01 7f 93 12    ...((.???..?????
    60: 7f 00 00 09 01 7f 00 00 00 00 00 00 00 00 00 00    ?..???..........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#

  • Hi,

    Your playback file seems fine, and you have maxed out the digital volume for the L+R DAC. I wonder if your file is mono or stereo? Typically playing a mono file will only send out the left side of the DAC, since you set the registers so that the left DAC data is left channel data and right DAC data is right channel data (register 0x3f). I can attach my annotated register dump for you here, just in case you wanted to verify. 

    04 03 #MCLK pin input to PLL, PLL CLK is CODEC_CLKIN
    05 91 #11, PLL powered up now. P=1, R=1 
    06 09#J=9
    0b 89#09, ndac powered up now. ndac=9
    0c 82#from 02, mdac powered up, mdac=2
    0e 80#dosr=128
    0f 02
    11 08
    12 89#09, nadc powered up, nadc=9
    13 82#02, madc powered up, madc=2
    14 80#aosr=128
    15 01
    17 04
    1a 01
    1d 01#BDIV_CLKIN=DAC_MOD_CLK
    1e 84#04, BCLK N div powered up, N=4
    !!!! 24 66#left adc powered up, gain is equal to max allowed gain in left agc, NOT equal to programmed gain. same w right agc
    25 cc#00, left+right dac powered up, lol+lor powered up
    26 11#left and right dac pga is equal to gain programmed
    !!!! 2a e0#ee, overflow has happened in l+r dac, NOW l+r adc have had overflow but also this register is copied next so maybe an issue w datasheet
    # 2d 60 #signal power was lower than noise threhold on left+right agc, now it is greater
    2f 60#l+r AGC signal power was lower than threshold
    34 08#GPIO is general purpose input
    35 12#dout is default primary dout
    36 03#din is gpi
    37 02
    38 04#SCLK GPI
    3c 01
    3d 01
    3f d4#14, now l+r dac channels powered up. left dac data is left channel data, right dac data is right chanel 
    # 40 0c now dac channels not muted
    41 30#max digital volume control, ldac
    42 30#max digital volume control, rdac
    44 6f#default drc. it is enabled, threshold=-12dbfs, hysteresis=3db
    45 38#drc holdtime=default

    As for the recording being too quiet, I saw that the AGC (automatic gain control) was enabled and the makeup gain is maximized, but can you increase the PGA volume control and decrease the AGC max gain? This will affect all the signals going into the ADC equally and amplify them. It is programmable up to 47.5dB gain, in page 1 registers 0x3b and 0x3c.

    I also noticed that the clocking/PLL config was different for both the recording and playback - did you change the clocks or have a different sample rate? It looks like the recording is at 32 bits and playback is 16 bits.

    Here are my notes on the recording:

    # weirdly no matching registers in the before capture and the during capture i2cdump. 
    # all registers from after DAC playback that differ are commented here.
    04 03
    05 91
    06 03#09 after playback. j=3 now
    07 1d#00 after playback, now D MSB=011101 
    08 4c#00, now D LSB=01001100 so D=7500 for J.D=3.75
    0b 83#89, now NDAC=3
    0c 85#82, now MDAC=5
    0e 40#80, now DOSR=64
    0f 02
    11 08
    12 85#89, now NADC=5 (weird since 5 and 3 are switched for dac but not a huge deal prob)
    13 83#82, now MADC=3
    14 40#80, now AOSR=64
    15 01 
    17 04 
    1a 01 
    1b 30#00, now we have 32 bits instead of 16 bits
    1d 01 
    1e 81#84, BCLK NDIV is now 1 instead of 4 
    24 66 #max gain for adc pga, not equal to programmed gain
    26 11 
    2a e0 
    2d 20#00, signal power was lower than noise threshold but just for RIGHT AGC, Left AGC was greater 
    2f 60 
    34 08
    35 12 
    36 03
    37 02
    38 04 
    !!!! 3c 09#01, now we are using prb_9 for DAC unsure why
    3d 01 #using prb_r1 for adc
    3f 14 
    40 0c
    41 0a#30, left dac volume is +5dB
    42 0a#30, right dac volume is +5dB
    44 6f
    45 38
    4b ee
    4c 10
    4d d8
    4e 7e
    4f e3
    51 c0#00, now l+r adc powered up
    53 28
    54 28
    56 81#93, LEFT AGC enabled and target=-5.5dBFS, left channel agc gain hysteresis is .5dB when it was 1.5dB
    57 44#12, LEFT AGC hysteresis 2.0dB, left channel agc noise threshold is -32dB
    58 75#7f, left channel agc maximum gain =58dB (not recommended, should be 74)
    59 20#00, attack time=9*32 adc wclk
    5a 20#00, decay time=9*32 adc wclk
    5b 02#09, agc noise debounce time=4 adc wclk
    5c 01
    5d 75#7f, left channel agc gain=58dB (above the max actually)
    5e 81#93, right channel has all the same settings as left
    5f 44#12
    60 75#7f
    61 20#00
    62 20#00
    63 02#09
    64 01
    65 75#7f

    Best,
    Mir


  • Hi  Mir 

    Thank you for Valuable reply .
    Actually I am using alsamixer GUI to configure the sound card, it's a Linux free command and output shows something like below

    Yesterday I was just playing around the setting that may cause the different  output in the I2cdump 
    So I am resending the  I2cdump with the Test case mentioned below (Sorry for  so many dump but make sure i am not missing anything )

    I have another question also  
        how to enhance quality by using internal audio blocks for microphone ?

    Please find the attached recorded audio below in that very last clap sound is there 

    Just FYI 

    I am using  below command to know the page number 

    i2cget -fy 3 0x18 0    to know what page is select
    i2cdump -fy 3 0x18  to dump the i2cdump
    i2cset -fy 3 0x18 0 01   to set the page 




    I am not sure if you have Linux Environment but if yes then you can easily understand my setting control.
    We need to run alsamixer command to any Linux kernel machine if pkg is there it will show and F6 to choose the card.


    Please find the attached asound.state which get created after the setting done. The register dump is the output after it.
    With the attached  asound.state 

    1. when device bootup I took Page 0 and Page 1 register. (dump1)

    2.  I restore my setting using alsactl restore and again took the (dump2)


    3. After that I tried the arecord and during arecord I took the (dump3)

       
            root@rk3576-buildroot:~# arecord -D hw:0,0 -r 96000 -c 2 -f s32_le /userdata/audio_test.wav
                     Recording WAVE '/userdata/audio_test.wav' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo
                    ^CAborted by signal Interrupt...

          By the way when I record it provide the output like below which seems to be Stereo 

    4. once  arecord finish I again took the (dump4)

    5. After that I play the recorded video and while playing again took (dump5)

                  root@rk3576-buildroot:~# aplay -D plughw:0,0 /userdata/audio_test.wav
    Playing WAVE '/userdata/audio_test.wav' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo

     

    6. once aplay finish I again took the dump (dump6)

    7. I changed the Volume to 20 % then executed the 7 option 

     

    root@rk3576-buildroot:~# amixer set Master 20%,20%
    Simple mixer control 'Master',0
    Capabilities: pvolume pswitch pswitch-joined
    Playback channels: Front Left - Front Right
    Limits: Playback 0 - 65536
    Mono:
    Front Left: Playback 13107 [20%] [on]
    Front Right: Playback 13107 [20%] [on]

     played  the attached wav file from the  Internet which seems to be working in both of my speaker in windows laptop
               
                 aplay -D plughw:0,0 file_example_WAV_1MG_test.wav
         
          while doing 7  took (dump7 )



    I Notice that  when I  execute the 7 command  page no register is always switching back to page 0 i can not take dump for page1 

    Attachment 

     

    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 11 09 00 00 00 00 09 02 00 80 02    ..`.???....??.??
    10: 00 08 09 02 80 01 00 04 00 00 01 00 00 01 04 00    .?????.?..?..??.
    20: 00 00 00 00 cc 00 00 00 00 00 00 00 00 00 00 00    ....?...........
    30: 00 00 00 00 01 12 03 02 02 00 00 00 01 01 00 14    ....?????...??.?
    40: 0c 00 00 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?...o8.....???~?
    50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
    60: 7f 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 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    
    ===============================Setting to Page 1=========================================
    root@rk3576-buildroot:~# i2cset -fy 3 0x18 0 01
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will write to device file /dev/i2c-3, chip address 0x18,
    data address 0x00, data 0x01, mode byte.
    Continue? [Y/n] y
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00    ?..........?....
    10: 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00    @@@@............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 00 00 40 00 00 40 00 80 80 00 03 00    ......@..@.??.?.
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 11 09 00 00 00 00 09 02 00 80 02    ..`.???....??.??
    10: 00 08 09 02 80 01 00 04 00 00 01 00 00 01 04 00    .?????.?..?..??.
    20: 00 00 00 00 cc 00 00 00 00 00 00 00 00 00 00 00    ....?...........
    30: 00 00 00 00 00 12 03 02 02 00 00 00 01 01 00 14    .....????...??.?
    40: 0c 27 27 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?''.o8.....???~?
    50: 00 00 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    ...!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    
    
    ===============================Setting to Page 1=========================================
    
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 00 00 10 00 00 08 08    ?..??......?..??
    10: 7a 7a 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 a2 00 80 20 00 80 00 00 00 00 00 00    ....?.? .?......
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 91 03 1d 4c 00 00 83 85 00 40 02    ..`.????L..??.@?
    10: 00 08 85 83 40 01 00 04 00 00 01 30 00 01 81 00    .???@?.?..?0.??.
    20: 00 00 00 00 cc 00 00 00 00 00 00 00 00 00 00 00    ....?...........
    30: 00 00 00 00 00 12 03 02 02 00 00 00 09 01 00 14    .....????...??.?
    40: 0c 27 27 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?''.o8.....???~?
    50: 00 c0 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    .?.!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~# i2cset -fy 3 0x18 0 01
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will write to device file /dev/i2c-3, chip address 0x18,
    data address 0x00, data 0x01, mode byte.
    Continue? [Y/n] y
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 00 00 10 00 00 08 08    ?..??......?..??
    10: 7a 7a 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 a2 00 80 20 00 80 00 00 00 00 03 00    ....?.? .?....?.
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 11 03 1d 4c 00 00 03 05 00 40 02    ..`.????L..??.@?
    10: 00 08 05 03 40 01 00 04 00 00 01 30 00 01 01 00    .???@?.?..?0.??.
    20: 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00    ....D...........
    30: 00 00 00 00 00 12 03 02 02 00 00 00 09 01 00 14    .....????...??.?
    40: 0c 27 27 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?''.o8.....???~?
    50: 00 00 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    ...!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~# i2cset -fy 3 0x18 0 01
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will write to device file /dev/i2c-3, chip address 0x18,
    data address 0x00, data 0x01, mode byte.
    Continue? [Y/n] y
    root@rk3576-buildroot:~# i2cget -fy 3 0x18 0
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will read from device file /dev/i2c-3, chip address 0x18, data address
    0x00, using read byte data.
    Continue? [Y/n] y
    0x01
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 00 00 10 00 00 08 08    ?..??......?..??
    10: 7a 7a 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 a2 00 80 20 00 80 00 00 00 00 00 00    ....?.? .?......
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 91 03 1d 4c 00 00 83 85 00 40 02    ..`.????L..??.@?
    10: 00 08 85 83 40 01 00 04 00 00 01 30 00 01 81 00    .???@?.?..?0.??.
    20: 00 00 00 00 00 cc 11 00 00 00 00 00 00 00 00 00    .....??.........
    30: 00 00 00 00 00 12 03 02 02 00 00 00 09 01 00 d4    .....????...??.?
    40: 00 27 27 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    .''.o8.....???~?
    50: 00 00 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    ...!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~# i2cset -fy 3 0x18 0 01
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will write to device file /dev/i2c-3, chip address 0x18,
    data address 0x00, data 0x01, mode byte.
    Continue? [Y/n] y
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 0c 00 10 00 00 08 08    ?..??....?.?..??
    10: 7a 7a 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 a2 00 80 20 00 80 00 00 00 00 00 30    ....?.? .?.....0
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

    root@rk3576-buildroot:~# i2cget -fy 3 0x18 0
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will read from device file /dev/i2c-3, chip address 0x18, data address
    0x00, using read byte data.
    Continue? [Y/n] y
    0x00
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 11 03 1d 4c 00 00 03 05 00 40 02    ..`.????L..??.@?
    10: 00 08 05 03 40 01 00 04 00 00 01 30 00 01 01 00    .???@?.?..?0.??.
    20: 00 00 00 00 44 00 11 00 00 00 00 00 00 00 00 00    ....D.?.........
    30: 00 00 00 00 00 12 03 02 02 00 00 00 09 01 00 14    .....????...??.?
    40: 0c 27 27 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?''.o8.....???~?
    50: 00 00 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    ...!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~# i2cset -fy 3 0x18 0 01
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will write to device file /dev/i2c-3, chip address 0x18,
    data address 0x00, data 0x01, mode byte.
    Continue? [Y/n] y
    root@rk3576-buildroot:~# i2cdump -fy 3 0x18
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-3, address 0x18, mode byte
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 08 08 00 00 00 00 00 00 10 00 00 08 08    ?..??......?..??
    10: 7a 7a 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00    zz??............
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 a2 00 80 20 00 80 00 00 00 00 00 00    ....?.? .?......
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 05 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@rk3576-buildroot:~#
    

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 60 00 03 91 09 00 00 00 00 89 82 00 80 02    ..`.???....??.??
    10: 00 08 89 82 80 01 00 04 00 00 01 00 00 01 84 00    .?????.?..?..??.
    20: 00 00 00 00 00 cc 11 00 00 00 00 00 00 00 00 00    .....??.........
    30: 00 00 00 00 00 12 02 02 02 00 00 00 01 01 00 d4    .....????...??.?
    40: 00 dd dd 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    .??.o8.....???~?
    50: 00 00 00 21 21 00 03 00 05 00 00 1f 00 00 03 00    ...!!.?.?..?..?.
    60: 05 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    

  • state.rapsodoaudiotlv {
    	control.1 {
    		iface MIXER
    		name 'SAI0 Transmit Start Mode Sel'
    		value Standalone
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Standalone
    			item.1 Chained
    		}
    	}
    	control.2 {
    		iface MIXER
    		name 'SAI0 Receive Start Mode Sel'
    		value Standalone
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Standalone
    			item.1 Chained
    		}
    	}
    	control.3 {
    		iface MIXER
    		name 'SAI0 Transmit SDOx Select'
    		value Auto
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Auto
    			item.1 SDOx1
    			item.2 SDOx2
    			item.3 SDOx3
    			item.4 SDOx4
    		}
    	}
    	control.4 {
    		iface MIXER
    		name 'SAI0 Receive SDIx Select'
    		value Auto
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Auto
    			item.1 SDIx1
    			item.2 SDIx2
    			item.3 SDIx3
    			item.4 SDIx4
    		}
    	}
    	control.5 {
    		iface MIXER
    		name 'SAI0 Receive Mono Slot Select'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 128'
    			dbmin 0
    			dbmax 16384
    			dbvalue.0 0
    		}
    	}
    	control.6 {
    		iface MIXER
    		name 'SAI0 Receive Mono Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.7 {
    		iface MIXER
    		name 'SAI0 Transmit Mono Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.8 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.9 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.10 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.11 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.12 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.13 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.14 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.15 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.16 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.17 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.18 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.19 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.20 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.21 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.22 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.23 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.24 {
    		iface MIXER
    		name 'SAI0 Sync Out Switch'
    		value 'From CRU'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From CRU'
    			item.1 'From IO'
    		}
    	}
    	control.25 {
    		iface MIXER
    		name 'SAI0 Sync In Switch'
    		value 'From IO'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From IO'
    			item.1 'From Sync Port'
    		}
    	}
    	control.26 {
    		iface MIXER
    		name 'SAI0 Receive PATH3 Source Select'
    		value 'From SDI3'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.27 {
    		iface MIXER
    		name 'SAI0 Receive PATH2 Source Select'
    		value 'From SDI2'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.28 {
    		iface MIXER
    		name 'SAI0 Receive PATH1 Source Select'
    		value 'From SDI1'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.29 {
    		iface MIXER
    		name 'SAI0 Receive PATH0 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.30 {
    		iface MIXER
    		name 'SAI0 Transmit SDO3 Source Select'
    		value 'From PATH3'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.31 {
    		iface MIXER
    		name 'SAI0 Transmit SDO2 Source Select'
    		value 'From PATH2'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.32 {
    		iface MIXER
    		name 'SAI0 Transmit SDO1 Source Select'
    		value 'From PATH1'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.33 {
    		iface MIXER
    		name 'SAI0 Transmit SDO0 Source Select'
    		value 'From PATH0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.34 {
    		iface MIXER
    		name 'SAI0 Clk Auto Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.35 {
    		iface PCM
    		name 'SAI0 PCM Read Wait Time MS'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 10000 (step 1)'
    		}
    	}
    	control.36 {
    		iface PCM
    		name 'SAI0 PCM Write Wait Time MS'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 10000 (step 1)'
    		}
    	}
    	control.37 {
    		iface MIXER
    		name 'MFP3 GPIO'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.38 {
    		iface MIXER
    		name 'MFP5 GPIO'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.39 {
    		iface MIXER
    		name 'PCM Playback Volume'
    		value.0 166
    		value.1 166
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 175'
    			dbmin -6350
    			dbmax 2400
    			dbvalue.0 1950
    			dbvalue.1 1950
    		}
    	}
    	control.40 {
    		iface MIXER
    		name 'DAC Left Playback PowerTune Switch'
    		value P1
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 P3
    			item.1 P2
    			item.2 P1
    		}
    	}
    	control.41 {
    		iface MIXER
    		name 'DAC Right Playback PowerTune Switch'
    		value P1
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 P3
    			item.1 P2
    			item.2 P1
    		}
    	}
    	control.42 {
    		iface MIXER
    		name 'HP Driver Gain Volume'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 35'
    			dbmin -600
    			dbmax 2900
    			dbvalue.0 -600
    			dbvalue.1 -600
    		}
    	}
    	control.43 {
    		iface MIXER
    		name 'LO Driver Gain Volume'
    		value.0 18
    		value.1 18
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 35'
    			dbmin -600
    			dbmax 2900
    			dbvalue.0 1200
    			dbvalue.1 1200
    		}
    	}
    	control.44 {
    		iface MIXER
    		name 'HP DAC Playback Switch'
    		value.0 false
    		value.1 false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.45 {
    		iface MIXER
    		name 'LO DAC Playback Switch'
    		value.0 true
    		value.1 true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.46 {
    		iface MIXER
    		name 'LO Playback Common Mode Switch'
    		value 'Full Chip'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'Full Chip'
    			item.1 '1.65V'
    		}
    	}
    	control.47 {
    		iface MIXER
    		name 'Mic PGA Switch'
    		value.0 true
    		value.1 true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.48 {
    		iface MIXER
    		name 'ADCFGA Left Mute Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.49 {
    		iface MIXER
    		name 'ADCFGA Right Mute Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.50 {
    		iface MIXER
    		name 'ADC Level Volume'
    		value.0 57
    		value.1 57
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 64'
    			dbmin -1200
    			dbmax 2000
    			dbvalue.0 1650
    			dbvalue.1 1650
    		}
    	}
    	control.51 {
    		iface MIXER
    		name 'PGA Level Volume'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 95'
    			dbmin 0
    			dbmax 4750
    			dbvalue.0 0
    			dbvalue.1 0
    		}
    	}
    	control.52 {
    		iface MIXER
    		name 'Auto-mute Switch'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 7'
    		}
    	}
    	control.53 {
    		iface MIXER
    		name 'AGC Left Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.54 {
    		iface MIXER
    		name 'AGC Right Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.55 {
    		iface MIXER
    		name 'AGC Target Level'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 7'
    		}
    	}
    	control.56 {
    		iface MIXER
    		name 'AGC Gain Hysteresis'
    		value.0 3
    		value.1 3
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 3'
    		}
    	}
    	control.57 {
    		iface MIXER
    		name 'AGC Hysteresis'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 3'
    		}
    	}
    	control.58 {
    		iface MIXER
    		name 'AGC Noise Threshold'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.59 {
    		iface MIXER
    		name 'AGC Max PGA'
    		value.0 5
    		value.1 5
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 127'
    		}
    	}
    	control.60 {
    		iface MIXER
    		name 'AGC Attack Time'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.61 {
    		iface MIXER
    		name 'AGC Decay Time'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.62 {
    		iface MIXER
    		name 'AGC Noise Debounce'
    		value.0 31
    		value.1 31
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.63 {
    		iface MIXER
    		name 'AGC Signal Debounce'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 15'
    		}
    	}
    	control.64 {
    		iface MIXER
    		name 'HPL Output Mixer L_DAC Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.65 {
    		iface MIXER
    		name 'HPL Output Mixer IN1_L Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.66 {
    		iface MIXER
    		name 'LOL Output Mixer L_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.67 {
    		iface MIXER
    		name 'HPR Output Mixer R_DAC Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.68 {
    		iface MIXER
    		name 'HPR Output Mixer IN1_R Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.69 {
    		iface MIXER
    		name 'LOR Output Mixer R_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.70 {
    		iface MIXER
    		name 'IN1_R to Right Mixer Positive Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.71 {
    		iface MIXER
    		name 'IN2_R to Right Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.72 {
    		iface MIXER
    		name 'IN3_R to Right Mixer Positive Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.73 {
    		iface MIXER
    		name 'IN2_L to Right Mixer Positive Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.74 {
    		iface MIXER
    		name 'CM_R to Right Mixer Negative Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.75 {
    		iface MIXER
    		name 'IN1_L to Right Mixer Negative Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.76 {
    		iface MIXER
    		name 'IN3_L to Right Mixer Negative Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.77 {
    		iface MIXER
    		name 'IN1_L to Left Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.78 {
    		iface MIXER
    		name 'IN2_L to Left Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.79 {
    		iface MIXER
    		name 'IN3_L to Left Mixer Positive Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.80 {
    		iface MIXER
    		name 'IN1_R to Left Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.81 {
    		iface MIXER
    		name 'CM_L to Left Mixer Negative Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.82 {
    		iface MIXER
    		name 'IN2_R to Left Mixer Negative Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.83 {
    		iface MIXER
    		name 'IN3_R to Left Mixer Negative Resistor'
    		value Off
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    }
    


    I have attached asound.state  here and rename as txt file please check once  this will provide our full alsa setting which we are using for alsamixer gui.

  • Hi Nitin,

    Are you still having issues with stereo playback? 

    I cannot test your exact files on a Linux system but I am familiar with alsamixer and I have access to the driver files which I am using to verify your alsamixer controls. Here are some things I noticed from your alsamixer screenshot:

    1) ADCFGA should be unmuted, this register may also mute and unmute the ADC - although in your asound state file the "Mute Switch" is set to false so maybe this is fine.

    2) You should see a slider somewhere labeled "PGA Level Volume", this is how you increase the level of the PGA without the AGC. Right now it is set to 0 according to your asound state, but can go up to 95. You should slowly increase this level until the recording is at a level you like. PGA is the programmable gain amplifier in the ADC, it is the first thing that can boost up the volume of an input signal inside the device.

    3) Change the input impedance to 10kOhm instead of 20 - decreasing input impedance will allow larger signals to make it to the ADC. This is with the CM_L and CM_R that are visible in your screenshot (although I am not sure you are using CM inputs at all), as well as your inputs IN1_L/R, IN2, IN3, etc. Do you have a diagram or explanation of which inputs you want to go to which input mixer (L/R ADC)? The setup you have in your asound state will help us determine what the setup looks like.

    Here are your current connections from the asound state file:

    IN2_R to Right Mixer Positive Resistor (20k)
    CM_R to Right Mixer Negative Resistor (20k)
    IN1_L to Left Mixer Positive Resistor (20k)
    IN2_L to Left Mixer Positive Resistor (20k)
    IN1_R to Left Mixer Positive Resistor (20k)
    CM_L to Left Mixer Negative Resistor (20k)
     
    I think I saw in your schematic that these are supposed to be differential microphone signals, but from this connection status it looks like they are all single ended. For a differential signal, you would want IN1_L to Left mixer positive, and the IN1_R to left mixer negative, for example. If the current asound state configuration is what you want to have, then you will want to change the resistors to 10k (this is done with alsamixer as well). You can also adjust the setup to be how you want. Changing the input impedance lower by a factor of 2 will increase the voltage in by a factor of 2 which corresponds to a difference of about 6dB.

    4) The AGC is muted with the AGC Left and Right Switches. Again I think you should increase the PGA level volume before you worry about the AGC, but maxing the gain hysteresis and noise threshold will not do what you want and you should decrease these if you do intend to use the AGC. If anything, you could increase the "AGC Max PGA" and "AGC Target Level" and decrease the hysteresis/noise threshold. I would recommend muting both the AGCFGA and AGC Switch, keeping them as they are now, until you are able to get volumes that you like with increasing the PGA, changing the input impedance, and the routing.

    Best,
    Mir

  • Hi Mir 

    Thank you for detailed response  and We Now able to record the Audio Properly 
    also  we don't have issue with  the Stereo playback , there was some HW connection issue and after that Left and right Speaker both working

    Today We have 1 Support and 1 question  ,  


    Question 1 :-   Please find the attached asound-temp.state which support one loop back pdm card and TLV sound card 
                            When I did alsactl restore after that I could not able to access the TLV320 Codec . Even it did not detect in I2c 
                             Is it possible that Writing the Wrong  asound.state can corrupt the  Codec card ?

    state.rapsodoaudiotlv {
    	control.1 {
    		iface MIXER
    		name 'SAI0 Transmit Start Mode Sel'
    		value Standalone
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Standalone
    			item.1 Chained
    		}
    	}
    	control.2 {
    		iface MIXER
    		name 'SAI0 Receive Start Mode Sel'
    		value Standalone
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Standalone
    			item.1 Chained
    		}
    	}
    	control.3 {
    		iface MIXER
    		name 'SAI0 Transmit SDOx Select'
    		value Auto
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Auto
    			item.1 SDOx1
    			item.2 SDOx2
    			item.3 SDOx3
    			item.4 SDOx4
    		}
    	}
    	control.4 {
    		iface MIXER
    		name 'SAI0 Receive SDIx Select'
    		value Auto
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Auto
    			item.1 SDIx1
    			item.2 SDIx2
    			item.3 SDIx3
    			item.4 SDIx4
    		}
    	}
    	control.5 {
    		iface MIXER
    		name 'SAI0 Receive Mono Slot Select'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 128'
    			dbmin 0
    			dbmax 16384
    			dbvalue.0 0
    		}
    	}
    	control.6 {
    		iface MIXER
    		name 'SAI0 Receive Mono Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.7 {
    		iface MIXER
    		name 'SAI0 Transmit Mono Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.8 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.9 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.10 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.11 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback I2S LR Channel Sel'
    		value 'L:MIC R:LP'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'L:MIC R:LP'
    			item.1 'L:LP R:MIC'
    		}
    	}
    	control.12 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.13 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.14 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.15 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback I2S LR Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.16 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.17 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.18 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.19 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback Src Select'
    		value 'From SDO0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDO0'
    			item.1 'From SDO1'
    			item.2 'From SDO2'
    			item.3 'From SDO3'
    		}
    	}
    	control.20 {
    		iface MIXER
    		name 'SAI0 SDI3 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.21 {
    		iface MIXER
    		name 'SAI0 SDI2 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.22 {
    		iface MIXER
    		name 'SAI0 SDI1 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.23 {
    		iface MIXER
    		name 'SAI0 SDI0 Loopback Switch'
    		value Disable
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Disable
    			item.1 Enable
    		}
    	}
    	control.24 {
    		iface MIXER
    		name 'SAI0 Sync Out Switch'
    		value 'From CRU'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From CRU'
    			item.1 'From IO'
    		}
    	}
    	control.25 {
    		iface MIXER
    		name 'SAI0 Sync In Switch'
    		value 'From IO'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From IO'
    			item.1 'From Sync Port'
    		}
    	}
    	control.26 {
    		iface MIXER
    		name 'SAI0 Receive PATH3 Source Select'
    		value 'From SDI3'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.27 {
    		iface MIXER
    		name 'SAI0 Receive PATH2 Source Select'
    		value 'From SDI2'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.28 {
    		iface MIXER
    		name 'SAI0 Receive PATH1 Source Select'
    		value 'From SDI1'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.29 {
    		iface MIXER
    		name 'SAI0 Receive PATH0 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.30 {
    		iface MIXER
    		name 'SAI0 Transmit SDO3 Source Select'
    		value 'From PATH3'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.31 {
    		iface MIXER
    		name 'SAI0 Transmit SDO2 Source Select'
    		value 'From PATH2'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.32 {
    		iface MIXER
    		name 'SAI0 Transmit SDO1 Source Select'
    		value 'From PATH1'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.33 {
    		iface MIXER
    		name 'SAI0 Transmit SDO0 Source Select'
    		value 'From PATH0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From PATH0'
    			item.1 'From PATH1'
    			item.2 'From PATH2'
    			item.3 'From PATH3'
    		}
    	}
    	control.34 {
    		iface MIXER
    		name 'SAI0 Clk Auto Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.35 {
    		iface PCM
    		name 'SAI0 PCM Read Wait Time MS'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 10000 (step 1)'
    		}
    	}
    	control.36 {
    		iface PCM
    		name 'SAI0 PCM Write Wait Time MS'
    		value 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 10000 (step 1)'
    		}
    	}
    	control.37 {
    		iface MIXER
    		name 'MFP3 GPIO'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.38 {
    		iface MIXER
    		name 'MFP5 GPIO'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.39 {
    		iface MIXER
    		name 'PCM Playback Volume'
    		value.0 121
    		value.1 121
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 175'
    			dbmin -6350
    			dbmax 2400
    			dbvalue.0 -300
    			dbvalue.1 -300
    		}
    	}
    	control.40 {
    		iface MIXER
    		name 'DAC Left Playback PowerTune Switch'
    		value P1
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 P3
    			item.1 P2
    			item.2 P1
    		}
    	}
    	control.41 {
    		iface MIXER
    		name 'DAC Right Playback PowerTune Switch'
    		value P1
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 P3
    			item.1 P2
    			item.2 P1
    		}
    	}
    	control.42 {
    		iface MIXER
    		name 'HP Driver Gain Volume'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 35'
    			dbmin -600
    			dbmax 2900
    			dbvalue.0 -600
    			dbvalue.1 -600
    		}
    	}
    	control.43 {
    		iface MIXER
    		name 'LO Driver Gain Volume'
    		value.0 0
    		value.1 0
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 35'
    			dbmin -600
    			dbmax 2900
    			dbvalue.0 -600
    			dbvalue.1 -600
    		}
    	}
    	control.44 {
    		iface MIXER
    		name 'HP DAC Playback Switch'
    		value.0 false
    		value.1 false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.45 {
    		iface MIXER
    		name 'LO DAC Playback Switch'
    		value.0 false
    		value.1 false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.46 {
    		iface MIXER
    		name 'LO Playback Common Mode Switch'
    		value '1.65V'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'Full Chip'
    			item.1 '1.65V'
    		}
    	}
    	control.47 {
    		iface MIXER
    		name 'Mic PGA Switch'
    		value.0 false
    		value.1 false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 2
    		}
    	}
    	control.48 {
    		iface MIXER
    		name 'ADCFGA Left Mute Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.49 {
    		iface MIXER
    		name 'ADCFGA Right Mute Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.50 {
    		iface MIXER
    		name 'ADC Level Volume'
    		value.0 18
    		value.1 18
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 64'
    			dbmin -1200
    			dbmax 2000
    			dbvalue.0 -300
    			dbvalue.1 -300
    		}
    	}
    	control.51 {
    		iface MIXER
    		name 'PGA Level Volume'
    		value.0 122
    		value.1 122
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 95'
    			dbmin 0
    			dbmax 4750
    			dbvalue.0 6100
    			dbvalue.1 6100
    		}
    	}
    	control.52 {
    		iface MIXER
    		name 'Auto-mute Switch'
    		value 7
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 7'
    		}
    	}
    	control.53 {
    		iface MIXER
    		name 'AGC Left Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.54 {
    		iface MIXER
    		name 'AGC Right Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.55 {
    		iface MIXER
    		name 'AGC Target Level'
    		value.0 7
    		value.1 7
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 7'
    		}
    	}
    	control.56 {
    		iface MIXER
    		name 'AGC Gain Hysteresis'
    		value.0 2
    		value.1 2
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 3'
    		}
    	}
    	control.57 {
    		iface MIXER
    		name 'AGC Hysteresis'
    		value.0 3
    		value.1 3
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 3'
    		}
    	}
    	control.58 {
    		iface MIXER
    		name 'AGC Noise Threshold'
    		value.0 29
    		value.1 29
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.59 {
    		iface MIXER
    		name 'AGC Max PGA'
    		value.0 122
    		value.1 122
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 127'
    		}
    	}
    	control.60 {
    		iface MIXER
    		name 'AGC Attack Time'
    		value.0 31
    		value.1 31
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.61 {
    		iface MIXER
    		name 'AGC Decay Time'
    		value.0 31
    		value.1 31
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.62 {
    		iface MIXER
    		name 'AGC Noise Debounce'
    		value.0 26
    		value.1 26
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 31'
    		}
    	}
    	control.63 {
    		iface MIXER
    		name 'AGC Signal Debounce'
    		value.0 10
    		value.1 10
    		comment {
    			access 'read write'
    			type INTEGER
    			count 2
    			range '0 - 15'
    		}
    	}
    	control.64 {
    		iface MIXER
    		name 'HPL Output Mixer L_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.65 {
    		iface MIXER
    		name 'HPL Output Mixer IN1_L Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.66 {
    		iface MIXER
    		name 'LOL Output Mixer L_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.67 {
    		iface MIXER
    		name 'HPR Output Mixer R_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.68 {
    		iface MIXER
    		name 'HPR Output Mixer IN1_R Switch'
    		value false
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.69 {
    		iface MIXER
    		name 'LOR Output Mixer R_DAC Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.70 {
    		iface MIXER
    		name 'IN1_R to Right Mixer Positive Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.71 {
    		iface MIXER
    		name 'IN2_R to Right Mixer Positive Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.72 {
    		iface MIXER
    		name 'IN3_R to Right Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.73 {
    		iface MIXER
    		name 'IN2_L to Right Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.74 {
    		iface MIXER
    		name 'CM_R to Right Mixer Negative Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.75 {
    		iface MIXER
    		name 'IN1_L to Right Mixer Negative Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.76 {
    		iface MIXER
    		name 'IN3_L to Right Mixer Negative Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.77 {
    		iface MIXER
    		name 'IN1_L to Left Mixer Positive Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.78 {
    		iface MIXER
    		name 'IN2_L to Left Mixer Positive Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.79 {
    		iface MIXER
    		name 'IN3_L to Left Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.80 {
    		iface MIXER
    		name 'IN1_R to Left Mixer Positive Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.81 {
    		iface MIXER
    		name 'CM_L to Left Mixer Negative Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.82 {
    		iface MIXER
    		name 'IN2_R to Left Mixer Negative Resistor'
    		value '40 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    	control.83 {
    		iface MIXER
    		name 'IN3_R to Left Mixer Negative Resistor'
    		value '20 kOhm'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 Off
    			item.1 '10 kOhm'
    			item.2 '20 kOhm'
    			item.3 '40 kOhm'
    		}
    	}
    }
    state.rockchipsoundmi {
    	control.1 {
    		iface MIXER
    		name 'PDM1 Receive PATH3 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.2 {
    		iface MIXER
    		name 'PDM1 Receive PATH2 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.3 {
    		iface MIXER
    		name 'PDM1 Receive PATH1 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.4 {
    		iface MIXER
    		name 'PDM1 Receive PATH0 Source Select'
    		value 'From SDI0'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 'From SDI0'
    			item.1 'From SDI1'
    			item.2 'From SDI2'
    			item.3 'From SDI3'
    		}
    	}
    	control.5 {
    		iface MIXER
    		name 'PDM1 HPF Cutoff'
    		value '60Hz'
    		comment {
    			access 'read write'
    			type ENUMERATED
    			count 1
    			item.0 '3.79Hz'
    			item.1 '60Hz'
    			item.2 '243Hz'
    			item.3 '493Hz'
    		}
    	}
    	control.6 {
    		iface MIXER
    		name 'PDM1 HPFL Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.7 {
    		iface MIXER
    		name 'PDM1 HPFR Switch'
    		value true
    		comment {
    			access 'read write'
    			type BOOLEAN
    			count 1
    		}
    	}
    	control.8 {
    		iface MIXER
    		name 'PDM1 Gain Volume'
    		value 119
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 127'
    			dbmin -6563
    			dbmax 2962
    			dbvalue.0 2362
    		}
    	}
    	control.9 {
    		iface MIXER
    		name 'PDM1 Start Delay Ms'
    		value 20
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 1000'
    		}
    	}
    	control.10 {
    		iface MIXER
    		name 'PDM1 Reference Clock Frequency'
    		value 6758400
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 61440000'
    		}
    	}
    	control.11 {
    		iface MIXER
    		name PGA1_setting
    		value 11
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 12'
    			dbmin 0
    			dbmax 3600
    			dbvalue.0 3300
    		}
    	}
    	control.12 {
    		iface MIXER
    		name PGA2_setting
    		value 11
    		comment {
    			access 'read write'
    			type INTEGER
    			count 1
    			range '0 - 12'
    			dbmin 0
    			dbmax 3600
    			dbvalue.0 3300
    		}
    	}
    }
    

    Problem 1 :-   We Wanted to Enable  Digital Mic Stereo  IM69D130V01XTSA1  Mentioned  in data sheet which is connected to (MFP4,MFP3)
                           How to enable the configuration for that .. If i write the MFP4 register to 0x0E  based on Application note i get the 
                            root@rk3576-buildroot:/userdata# alsamixer
                            cannot load mixer controls: Operation not permitted

    This is the same which you mentioned  in  #1 comments .. Please help to enable the  Digital Mic Stereo. below is snap shot from Schematics again from your reference  

  • Hi,

    I'm not sure, maybe the driver does not support setting the MFP pins to digital microphone setting, since I see you also need to change page 0 register 81 (0x51) to set which ADC is configured for the digital mic. You might be better off including the 3 register sets you need in an init script - for MFP3 to be mic data, set reg 56 bits D2-D1=01, reg 81 bits D5-4=01. For MFP4 to be mic clk, set reg 55 bits D4-1=0111.

    Let me know if you need more help.

    Best,
    Mir

  • Hi Mir 

    I opened the new issue to support digital MIC 

    TLV320AIC3204: Regarding Digital Mic Support - Audio forum - Audio - TI E2E support forums


    For  this thread only one question is remained 

    Question 1 :-   Please find the attached asound-temp.state which support one loop back pdm card and TLV sound card 
                            When I did alsactl restore after that I could not able to access the TLV320 Codec . Even it did not detect in I2c 
                             Is it possible that Writing the Wrong  asound.state can corrupt the  Codec card ?

    Can you please help to answer this .. Not sure what happen but after writing card was not detecting in I2c 

  • Hi,

    About the alsactl restore, can you send all commands to get this error? And what is the error you get? There is a chance that the default audio device is getting removed when you do this so it needs to be initialized again. Here is a similar thread on a Linux forum: https://bbs.archlinux.org/viewtopic.php?id=233813

    Best,
    Mir

  • Hi Mir 

    I have asound.state setting for only one card  but  actually i had 2 card .. I had enabled the loopback card as well.
    I applied the asound.state and after that Audio card was not detecting in I2c  itself ..

    So Currently problem is card is not detecting in i2cdetect -y 3 command and 0x18 address is not coming ..

  • Hi,

    If the card is not detecting in i2cdetect, maybe the device has shut down due to an error or there may be something blocking that i2c address in your system. What happens if you hard reset the device, or soft reset? 

    -Mir