SSM2603 and L/R DAC Volume

I need to be able to set the gain between the left and right DAC units independently in this driver, but I see no way of doing it.  In the ssm260x_probe() function it sets RLHPBOTH and LRHPBOTH to 1.

/* set the update bits */

reg = snd_soc_read(codec, SSM2602_LINVOL);

snd_soc_write(codec, SSM2602_LINVOL, reg | LINVOL_LRIN_BOTH);

reg = snd_soc_read(codec, SSM2602_RINVOL);

snd_soc_write(codec, SSM2602_RINVOL, reg | RINVOL_RLIN_BOTH);

Do I need to create a new ALSA control to modify each one?  Could someone possibly give me a breakdown of what that entails?  I don't want to hard code it, but I don't want this to take a week either.

Parents
  • Right now, I've commented out the ' | XINVOL_XIN_BOTH bit and things work as expected. 

    root:/> amixer sset Master "120,110"

    Simple mixer control 'Master',0

      Capabilities: pvolume penum

      Playback channels: Front Left - Front Right

      Limits: Playback 0 - 127

      Mono:

      Front Left: Playback 120 [94%] [-2.00dB]

      Front Right: Playback 110 [87%] [-12.00dB]

    I would like to help someone out to create a control to toggle that bit

Reply
  • Right now, I've commented out the ' | XINVOL_XIN_BOTH bit and things work as expected. 

    root:/> amixer sset Master "120,110"

    Simple mixer control 'Master',0

      Capabilities: pvolume penum

      Playback channels: Front Left - Front Right

      Limits: Playback 0 - 127

      Mono:

      Front Left: Playback 120 [94%] [-2.00dB]

      Front Right: Playback 110 [87%] [-12.00dB]

    I would like to help someone out to create a control to toggle that bit

Children
No Data