Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 27 Aug 2008 04:10 PM by  colingibbs
non-functioning pmic when switching to lolo version 2.4.0
 1 Replies
You are not authorized to post a reply.
Author Messages

New Member

New Member

21 Aug 2008 01:52 PM
    Has anyone noticed that the pmic no longer functions when switching from lolo version 2.3.5p2 to 2.4.0?

    We are running lolo version 2.3.5p2 and the PMIC is functional. The result from the function pmic_get_revision function is: rev1=3, rev2=3, icid=2, finid=0.

    However, switching into lolo version 2.4.0 makes the pmic non-functional. The result of the pmic_get_revision function is: rev1=3, rev2=4, icid=4, finid=3. Upon further investigation, we've discovered that the icid needs be 2 in order for the pmic to function properly. The rev1, rev2, icid and finid values seem to change as the linux kernel is recompiled.

    We have tried this on the linux kernel 2.6.22 and 2.6.24 linux kernel versions, with similar results. Changing linux kernels while using lolo 2.3.5p2 allows a functioning pmic.

    Any help or insight is appreciated. Thanks.


    New Member

    New Member

    27 Aug 2008 04:10 PM
    I believe I ran into this problem as well. Here's what fixed it for me:

    diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
    index 309b61f..93c0653 100644
    --- a/drivers/spi/mxc_spi.c
    +++ b/drivers/spi/mxc_spi.c
    @@ -671,6 +671,7 @@ static int mxc_spi_probe(struct platform_device *pdev)
    master_drv_data->base + MXC_CSPIRESET);
    + __raw_writel(MXC_CSPICTRL_DISABLE, master_drv_data->base + MXC_CSPICTRL);
    master_drv_data->base + MXC_CSPICTRL);

    The problem is the receive fifo still has some data in it and the spi controller is still enabled from LoLo. So the controller must be explicitly disabled then enabled to clear the fifo.

    You are not authorized to post a reply.