Re: Cherry Trail + RT5645 devices with a mono speaker ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 16-10-17 13:31, Bard Liao wrote:
-----Original Message-----
From: Hans de Goede [mailto:hdegoede@xxxxxxxxxx]
Sent: Sunday, October 15, 2017 2:12 AM
To: Pierre-Louis Bossart; Bard Liao
Cc: alsa-devel@xxxxxxxxxxxxxxxx
Subject: Cherry Trail + RT5645 devices with a mono speaker ?

Hi Pierre-Louis, Bard,

I've been looking into getting some Cherry Trail + RT5645
devices with a mono speaker I have to work properly.

Specifically the goal is to mix the right channel into
the left output, so that sounds which are only played
over the right channel do not get lost.

I'm using this UCM file:
https://github.com/plbossart/UCM/blob/master/byt-rt5640/HiFi

Looking at the rtl5640 UCM file, getting the mono speaker
to work (in a first simple attempt) should be as simple
as replacing:

                  cset "name='SPOR MIX SPKVOL R Switch' on"

With

                  cset "name='SPOL MIX SPKVOL R Switch' on"

But this does not work, the speaker test sound for the
right speaker is still silent (works with headphones).

I've also looked into directly poking the
RT5645_SPO_MIXER i2c register for testing, but when
checking its value with the original unmodified UCM
file:

[root@localhost ~]# i2cget -y -f 1 0x1a 0x48  w
0x06c8

That is: 0xc806 as the output of i2cget "w" mode
needs byteswapping. Note that both the
RT5645_M_SV_L_SPM_L and RT5645_M_SV_R_SPM_L bits
are already cleared, which is weird as this is
before I've modified anything. Also the
RT5645_M_SV_R_SPM_R bit is cleared, but that is
expected.

Even if I manually set reg 0x48 to 0x07c8 which AFAIK
should enable output of both left and right channels
on the left speaker I still only get sounds played
on the left channel.

Any insights / help with this would be very much
welcome.

Could you dump all registers for us?

Here you go:

     0,8  1,9  2,a  3,b  4,c  5,d  6,e  7,f
00: 0000 0808 c8c8 c8c8 0ac8 0000 0000 0000
08: 0000 0000 0200 2738 00e0 0000 0000 0000
10: 0000 0000 0000 0000 3333 0000 004b 0000
18: 8b01 afaf afaf 1100 3f3f 7f7f 00f0 0000
20: 00a0 0000 0000 0000 0000 0000 0000 2038
28: 3030 8080 1616 4444 a0aa 0000 0000 0210
30: 0000 0050 0000 0000 0000 0000 0000 0000
38: 0000 0000 0000 0000 7d00 0000 7d00 0000
40: 1c00 0000 1c00 0000 0000 0050 3800 3800
48: 06c8 0000 0400 0000 1f03 0000 0000 ff01
50: 0000 0000 ff01 00f0 0000 0000 1101 6400
58: 0eef f0f0 0eef f0f0 0eef f0f0 00f0 0000
60: 0000 019b 0008 1ae8 0402 0230 00c0 0000
68: 0000 0000 0000 0000 aa0a 0000 0000 0000
70: 8380 0080 0080 7017 003e 0924 0a00 0058
78: 0000 2301 0080 0000 0000 0000 0000 0000
80: 0040 030f 0030 000c 1111 0000 0800 0000
88: 0000 0000 2001 0000 0300 0000 0000 4011
90: 3606 060c 0000 0801 0202 0000 0000 0000
98: 0000 0000 8421 0a01 ea0a 0c00 0004 0000
a0: e8a0 5900 0100 0000 0000 0000 0000 0000
a8: 0000 0000 0000 0000 0000 0000 0060 0000
b0: 0060 0000 0000 1f00 0c02 001f 0000 0040
b8: 0000 0000 0000 0000 0000 8002 0000 8011
c0: 0080 0000 0000 0020 0000 0000 0000 0000
c8: 0000 0000 0000 0000 0000 0000 0000 1418
d0: 9006 171c 0000 20b3 0000 0000 0004 0000
d8: 0000 0908 0000 0300 4900 1b00 0000 0000
e0: 0000 0000 0000 0000 0000 0000 0080 0007
e8: 0080 0007 200f 0000 00b3 0000 0000 0000
f0: 1f00 0c02 001f 0000 0040 0000 0000 0000
f8: 0000 0000 6120 4040 001a 0400 ec10 0863

Note that i2cdump swaps the low and high bytes
in all the 16 bit words.

Regards,

Hans
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux