view src/cs/drivers/drv_app/lcc/lcc_api.c @ 673:62a5285e014a

Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango Back in 2015 the Mother's idea was to produce a FreeCalypso development board that would be a clone of TI Leonardo, including the original quadband RFFE; one major additional stipulation was that this board needed to be able to run original unmodified TCS211-20070608 firmware with all blobs intact, with only minimal binary patches to main.lib and tpudrv.lib. The necessary patched libs were produced at that time in the tcs211-patches repository. That plan was changed and we produced FCDEV3B instead, with Openmoko's triband RFFE instead of Leonardo quadband, but when FC Magnetite started in 2016, a TPUDRV_blob= provision was still made, allowing the possibility of patching OM's tpudrv.lib for a restored Leonardo RFFE. Now in 2020 we have FC Tango which is essentially a verbatim clone of Leonardo core, including the original quadband RFFE. We have also deblobbed our firmware so much that we have absolutely no real need for a blob version of tpudrv.lib - but I thought it would be neat to put the ancient TPUDRV_blob= mechanism (classic config) to its originally intended use, just for the heck of it.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 29 May 2020 03:55:36 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/******************************************************************************
 * Power Task (pwr)
 * Design and coding by Svend Kristian Lindholm, skl@ti.com
 *
 * PWR MMI Interface
 *
 * $Id: pwr_api.c 1.1 Wed, 20 Aug 2003 10:22:37 +0200 skl $
 *
 ******************************************************************************/

#include "lcc/lcc.h"
#include "lcc/lcc_env.h"
#include "lcc/lcc_trace.h"
#include "rv/rv_defined_swe.h"

/******************************************************************************
 * Function prototypes
 ******************************************************************************/

T_RVM_RETURN pwr_start_timer(UINT32 *timer_begin);

// Inform the PWR process which callback function to send MMI events
// and perform initialization of mmi related variables
void pwr_register (T_RV_RETURN_PATH *return_path, void *ptr) {
    ttw(ttr(TTrInit,"pwr_register  (%d)" NL, 0x00));

    // Assign return path (callback or task address id)
    pwr_ctrl->rpath.callback_func = return_path->callback_func;
    pwr_ctrl->rpath.addr_id       = return_path->addr_id;

    // Pointer to mmi event memory allocated (& deallocated) by the MMI
    pwr_ctrl->mmi_ptr = (struct mmi_info_ind_s *) ptr;

    // Yes - the mmi has registered!
    pwr_ctrl->flag_mmi_registered = 1;

    // Start the mmi repetition timer
    pwr_start_timer(&pwr_ctrl->time_begin_mmi_rep);
    ttw(ttr(TTrTimerLow,"mmi repetition timer started(%d)" NL, 0));

    ttw(ttr(TTrInit,"pwr_register  (%d)" NL, 0xFF));
}