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.

Question ON AVS

Other Parts Discussed in Thread: AM3517

Hi I have a customer reporting that AVS on ctm board is not working properly.

Below is the log

ALSA device list:
#0: TI81XX_DVR_CARD0
#1: TI81XX_DVR_CARD1
oprofile: using arm/armv7
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
omap_voltage_late_init: Voltage driver support not added
Power Management for TI81XX.
smartreflex smartreflex: Driver initialized
davinci_emac_probe: using random MAC addr: 0e:da:bf:3b:82:e6
omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
hub 2-0:1.0: over-current change on port 1

 

The green means good, but the red sentences is not good.  I can not see the red sentence from my log.

Ctm is using the same power chip as EVM does.

 

And another derived question is,   from EVM's log,  there will be prints like   prev_volt is xxxxxxxxx.   But ctm's board doesnt have such print.    We searched the source code, but there is no any printk that gives us a clue that where this print comes from....  

Could you give some advice?

 

Thanks & Best Regards,

Eason Wang

  • Hi Eason,

    I am working with EZSDK 5.05.02.00 on DM816x EVM PG1.1. When I boot up the board with the default linux kernel, I have:

     ALSA device list:
      #0: TI81XX EVM
    TCP cubic registered
    NET: Registered protocol family 17
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    omap_voltage_late_init: Voltage driver support not added
    Power Management for TI81XX.
    smartreflex smartreflex: Driver initialized
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    ata1: SATA link down (SStatus 0 SControl 300)
    ata2: SATA link down (SStatus 0 SControl 300)
    Waiting for root device /dev/mmcblk0p2...

    So, I think this message is normal (omap_voltage_late_init: Voltage driver support not added)

    Regards,
    Pavel

  • Eason,

    Looking into the linux kernel code, I see that this "voltage driver support" is not the SmartReflex (AVS) support. This is a feature which is applicable only for OMAP3505, OMAP/AM3517, OMAP34xx, OMAP44xx, but not for DM816x device.

    On boot up I have:

    omap_voltage_early_init: voltage driver support not added

    omap_voltage_late_init: Voltage driver support not added

    ti-ezsdk_dm816x-evm_5_05_02_00/board-support/linux-2.6.37-psp04.04.00.01/arch/arm/mach-omap2/voltage.c

    /**
     * omap_voltage_early_init()- Volatage driver early init
     */
    static int __init omap_voltage_early_init(void)
    {
        int i;

        if (cpu_is_omap3505() || cpu_is_omap3517()) {
            vdd_info        = am3517_vdd_info;
            nr_scalable_vdd        = AM3517_NR_SCALABLE_VDD;
            vc_init            = am3517_vc_init;
            vp_init            = am3517_vp_init;
            vdd_data_configure    = am3517_vdd_data_configure;
        } else if (cpu_is_omap34xx()) {
            vdd_info = omap3_vdd_info;
            nr_scalable_vdd = OMAP3_NR_SCALABLE_VDD;
            vc_init = omap3_vc_init;
            vp_init = omap_vp_init;
            vdd_data_configure = omap3_vdd_data_configure;
        } else if (cpu_is_omap44xx()) {
            vdd_info = omap4_vdd_info;
            nr_scalable_vdd = OMAP4_NR_SCALABLE_VDD;
            vc_init = omap4_vc_init;
            vp_init = omap_vp_init;
            vdd_data_configure = omap4_vdd_data_configure;
        } else {
            pr_warning("%s: voltage driver support not added\n", __func__);
            return -EINVAL;
        }

        /* Init the device list */
        for (i = 0; i < nr_scalable_vdd; i++)
            INIT_LIST_HEAD(&(vdd_info[i].dev_list));

        return 0;
    }

    /**
     * omap_voltage_late_init() - Init the various voltage parameters
     *
     * This API is to be called in the later stages of the
     * system boot to init the voltage controller and
     * voltage processors.
     */
    int __init omap_voltage_late_init(void)
    {
        int i;

        if (!vdd_info) {
            pr_err("%s: Voltage driver support not added\n",
                __func__);
            return -EINVAL;
        }

        voltage_dir = debugfs_create_dir("voltage", NULL);
        if (IS_ERR(voltage_dir))
            pr_err("%s: Unable to create voltage debugfs main dir\n",
                __func__);
        for (i = 0; i < nr_scalable_vdd; i++) {
            if (vdd_data_configure(&vdd_info[i]))
                continue;
            vc_init(&vdd_info[i]);
            vp_init(&vdd_info[i]);
            vdd_debugfs_init(&vdd_info[i]);
        }

        return 0;
    }

    As you can see from the code, vdd_info for DM816x is not filled with data, and as result we have that message.

    See these two links for SmartReflex/AVS:

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_PM_AVS_Driver_User_Guide

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_AVS_FAQ

    Best Regards,
    Pavel

  • Hi ,

    Thanks very much for your quick respones. But my SW is DVRRDK actually so I am not sure if it is the same as the EZSDK.

    BR,

    Eason

  • Eason,

    You can check the /arm/mach-omap2/voltage.c file logic in your DVR RDK, I think it should be the same as EZSDK. I will also notify our DVR RDK expert for help.

    Regards,
    Pavel