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.

Problems powering off Beagleboard xM with TPS65950.

Other Parts Discussed in Thread: TPS65950

Hi, we have a Beagleboard xM and we are trying to power it off using the TPS65950.

For that purpose, we set the bit DEVOFF of register P1_SW_EVENTS to 1 with the following command:

i2cset -f 1 0x4b 0x46 0x01

However we are experiencing the following issue:

when we enter the previous command, sometimes the board will reset instead of power off, and the behavior seems completely random.

 

Do you know what could be the problem here?

Thank you.

 

  • Hi,

    If the behavior is random then it is very difficult to say what is going on. Does it look like any start-up event is triggering when the device shuts down? 

    What is USB ID pin connected to, is it floating or connected to 3.1V? If it is connected to 3.1V then this can be the starting event that powers up the platform. However, it should be seen always.

  • Gandhar Dighe said:

    If the behavior is random then it is very difficult to say what is going on. Does it look like any start-up event is triggering when the device shuts down?

    Hi, we've just tested with another Beagleboard xM we have in the lab and it seems that when issuing the i2c command it always resets instead of power up. It looks like if any start-up event was triggering as you mentioned.

    Gandhar Dighe said:

    What is USB ID pin connected to, is it floating or connected to 3.1V? If it is connected to 3.1V then this can be the starting event that powers up the platform. However, it should be seen always.

    USB ID pin is floating. We have also a backup battery of 2,6V connected to BKBAT, this is the only add-on we have made to the Beagleboard xM. However, removing that battery doesn't change anything.

    Are you having the same problem?

     

  • Hi,

    Starton event scan be seen in table 5-11 of the Technical Reference Manual. Doesnt really seem any of these would be active on your platform.

    Do you have AC charger connected to the device. I dont think Beagleboard uses the charging block though.

     

  • Hi, we are powering the board using 5V adapter. Apart from that the only interface used is RS232 as debugging console. But, as far as I know, RS232 can't be a trigger source.

    We tested with three different Beagleboard and have the same problems with all of them.

     

  • Hi,

    UART is not a trigger event.

    Is there a way I can have a look at your board schematics?  Try to send me as a attachment on friend/chat request. Havent explored how this interface works for such attachments. It would be easier if you work with any FAE, he/she can pass the schematics to me. 

    I dont know what is happening and why.

  • As I mentioned, my board is a standard Beagleboard xM.

    The schematic is available here: http://beagle.s3.amazonaws.com/design/xM-A3/BB-xM_Schematic_REVA3.pdf

    The only change I've made is adding a push button between PWRON pin of TPS65950 and GND to trigger a power-on.

    I hope this is enough, otherwise please let me know.

    Thank you.

     

  • I got the following from Beagle expert -

    =========

    You can’t just power it down because other things are still powered on, like the serial port and the Ethernet. Doing so could damage the processor. You would need to turn that stuff off first.

    =========

    Try turning off all other peripherals and then try to turn off the board. I would assume that the software may have some checks before if turns off the system. You can try this. 


  • I added the following patch to mainline kernel 2.6.38:


    diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
    index abf87d1..3b5f350 100644
    --- a/arch/arm/mach-omap2/board-omap3beagle.c
    +++ b/arch/arm/mach-omap2/board-omap3beagle.c
    @@ -610,6 +610,12 @@ static struct omap_musb_board_data musb_board_data = {
    .power = 100,
    };

    +static void beagle_power_off(void)
    +{
    + twl_i2c_write_u8(TWL4030_MODULE_PM_MASTER, 0x01, TWL4030_PM_MASTER_P1_SW_EVENTS);
    + while(1);
    +}
    +
    static void __init omap3_beagle_init(void)
    {
    omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
    @@ -637,6 +643,8 @@ static void __init omap3_beagle_init(void)
    omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);

    beagle_display_init();
    +
    + pm_power_off = beagle_power_off;
    }

    MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")


    With this patch, beagle_power_off() function is executed just at the end of the power off process, which means external peripherals are not used anymore.
    But it still does not work. I'm not sure if this is what you meant in your last post.

    Thank you.

  • This is a Beagleboard specific question and I cannot help you here. I recommend that you post this question to Beagleboard forum at www.beagleboard.org

    I was told that all Beagles are shipped with 2.6.32. So, if you are trying the latest kernel then Beagleboard forum is your best bet.

     

  • hello ,,

    how your finding the address of the device and register.

  • Hai javi

    I had the same difficulties on this same.Did you overcome it??

    Did you note one thing in TPS65950 TRM,page no 259. what is purpose of SEQ_OFFSYNC ?did you try it?

    Kindly reply me.Did you had any favours..

    Thanks in advance

  • Hai Javier

    Where do you execute the " beagle_power_off() " in the kernel coding during the shutdown process.

    When i get the new linux source from ti for beagleboard xm.When i execute in my custom board,when i shutdown it,that shows system halted.Here the TPS65950 is in on.I want to shutdown this PMIC also (Power down).How do i do it???

    Thankyou