[alsa-devel] WM5102 - Help to make baytrail machine driver work

Charles Keepax ckeepax at opensource.wolfsonmicro.com
Mon May 15 14:02:55 CEST 2017


On Sat, May 13, 2017 at 02:11:31AM -0300, Paulo Sergio wrote:
> Remarks:
> 
> * setting pll/fll using snd_soc_dai_set_pll didn't work. I had to map
> the codec member from snd_soc_dai struct and use
>    snd_soc_codec_set_pll instead (used the same constants used on
> Lenovo source code)
> 

Yes this is correct you will need to call snd_soc_codec_set_pll
to configure the FLLs on the chip. As the FLLs are not tied to a
particular DAI it doesn't really make sense to configure them
from dai_set_pll.

>  - Had also to set sysclk to  codecs, not only to dai's using
> snd_soc_codec_set_sysclk
> 

Again this also makes sense snd_soc_codec_set_sysclk is how you
configure the sysclk on this device. Again here the sysclk is
chip wide.

> * This device (Lenovo Yoga 2 1051F) is a bytcr device. However bios
> status returned by iosf_mbi_read is
>     1000000001000000000000101000000 (bits 26:27 disabled).
>    Had to force  bytcr flag to be true  in order to apply correct MCLK
> frequency (25Mhz) and use SSP0
> 
> * Used commands from rt5640 UCM file, removing 5640 specifics and
> using Wolfson ones (thanks to Charles for point this out previously):
> cset name='HPOUT1L Input 1' AIF1RX1
> cset name='HPOUT1R Input 1' AIF1RX2
> cset name='HPOUT1 Digital Switch' on
> 
> 
> cset name='Headphone Switch'  on
> 
> * Used some patches to enable wm5102 ACPI detection (credits to
> Christian Hartmann)
> 
> * Added a voltage supplier needed to wm5102 (added to arizona-ldo
> directly - Lenovo and rpi register a platform with these)

Should probably look at splitting that out into its own regulator
and making it the supply for the LDO.

> * hardcoded ldoena, reset and irq_gpio on arizona-core (tried to get
> those from gpio, but they didn't give me the correct values. Lack of
> knowledge... )
> 

Not sure on this front I am afraid.

> * The codec chip uses SPI, not IC2 like 5640 (don't know if this is
> relevant for machine driver code)

This should not matter from the machine driver it should all be
hidden behing regmap at that level.

Thanks,
Charles


More information about the Alsa-devel mailing list