pxa270 sound issue

Help
nobody
2011-11-25
2013-04-15
  • nobody
    nobody
    2011-11-25

    Hi,

    I have some tests to do with a Colibri PXA270M 312 V2.20b module under Linux.

    I try to operate it with a Colibri evaluation board Rev2.1 01/2006

    I boot  with this environment :
    - Linux image uImage-2.6.35.9-toradex
    - bootloader u-boot-2010.09-colibri_pxa270.bin
    - rootfs rootfs-toradex-bsp-2011.02-r1

    I obtain a message showing a problem with AC'97 cold reset.
    pxa2xx_ac97_try_cold_reset: cold reset timeout (GSR=0x44)

    So, the new audio controller Wolfson WM9715L is never detected.

    I have differents versions of PXA27x Processor Family Developers Manual.
    One from Intel version October 2004, and the second from Marvell version April 2009.

    1-The second manual say that during cold reset we need to switch off the AC link and wait until the link is OK.
    But the link is never OK. Is it important ?

    2-Why the file /sound/arm/pxa2xx-ac97-lib.c didn't change between kernel 2.6.20 and 2.6.35, or  3.0 whereas the way to do a cold reset changed ?

    Best regards

     
  • MinimumLaw
    MinimumLaw
    2011-11-26

    Sorry, I not support pxa270 now. We change Colibri 270 to Colibri 320 in our current project.

    On pxa320 change from Philips  to Wolfson audio codec requre some changes in audio subsystem. USB1400 detected (and worked fine) directly on AC97 bus. Wolfson codec need some runtime-level patch (see Toradex code for PXA320 - SOC-Audio). Directly on AC97 bus them detected, but _NOT_ working.
    Are you have some records in /proc/asound? If "yes" - you have detected and working audion codec. Wolfson have many-many control lines in mixer interface. Are all off them inited correctly with alsamixer?

    About cold reset. Error "cold reset timeout (GSR=0x44)" not say about audio codec not detected. Code can use warm reset for audio codec.
    If you realy want use cold reset - see plaftorm code for AC97 bus reset pin. Is them defined? Is them defined correctly?
    I don't have any PXA270 v2.x module.  

     
  • Jon Considine
    Jon Considine
    2012-03-27

    Don't know if you're still working on this issue. I had the same problem moving from the TocoLinux 2.6.34.1 kernel to 2.6.35.9. The problem is the reset sequence in arc/arm/mach-pxa/pxa27x.c, which seems to be aimed at the UCB1400-based devices. The Wolfson device requires the following:

    static unsigned long ac97_reset_config = {
    #ifdef CONFIG_MACH_COLIBRI
    GPIO95_AC97_nRESET, // Colibri 270 has different reset
    GPIO95_GPIO, // ordering for Wolfson device
    GPIO113_AC97_nRESET,
    GPIO113_GPIO,
    #else
    GPIO113_GPIO,
    GPIO113_AC97_nRESET,
    GPIO95_GPIO,
    GPIO95_AC97_nRESET,
    #endif
    };

     
  • MinimumLaw
    MinimumLaw
    2012-03-27

    Thank you. Some later I put this issue into kernel patch. But I think more correctly use code with system_rev:

    if (system_rev < 0x20a) {
    /* do UCB1400 reset config */
    } else {
    /* do Wolfson reset config */
    }

    and got system revision from U-Boot tags. See realization of this idea for colibri pxa320 on https://github.com/MinimumLaw/ravion-uboot/blob/openpxa-ravion/board/colibri_pxa320/colibri_pxa320.c - read rev# enverooment var and translate them into revision boottag