FreeCalypso > hg > tcs211-l1-reconst
diff chipsetsw/drivers/drv_app/lcc/lcc_modulate.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chipsetsw/drivers/drv_app/lcc/lcc_modulate.c Mon Jun 01 03:24:05 2015 +0000 @@ -0,0 +1,88 @@ +/****************************************************************************** + * Power Task (pwr) + * Design and coding by Svend Kristian Lindholm, skl@ti.com + * + * PWR SW Modulation + * + * $Id: pwr_modulate.c 1.1 Wed, 20 Aug 2003 10:22:37 +0200 skl $ + * + ******************************************************************************/ +#include <string.h> +#include "lcc/lcc.h" +#include "lcc/lcc_trace.h" +#include "lcc/lcc_modulate.h" +#include "lcc/lcc_cfg_i.h" +#include "lcc/lcc_cfg.h" +#include "rv/rv_defined_swe.h" +#include "abb/abb.h" + +/****************************************************************************** + * Function prototypes + ******************************************************************************/ + +void pwr_modulate_init(void); +void pwr_modulate_on(void); +void pwr_modulate_off(void); + + +#if (USE_Q401_CHG_CIRCUIT == 1) +extern T_PWR_CFG_BLOCK *pwr_cfg; +#endif + +void pwr_modulate_init(void) { + ttw(ttr(TTrEventLow,"pwr_modulate_init(%d)" NL, 0)); + #if (USE_PWL_AS_MODULATOR == 1) + BUZZ_LIGHT_REG |= 0x02; + PWL_LEVEL_REG = 0xFF; // Full envelope function + PWL_CTRL_REG = 0x00; // No 32KHz clock + #else + // Set GPIO 6 HIGH + *((volatile uint16 *) 0xfffe4806) |= 0x0020; // Enable GPIO module + *((volatile uint16 *) 0xfffe4804) &= 0xffbf; // Set GPIO-6 = output + *((volatile uint16 *) 0xfffe4802) |= 0x0080; // Set GPIO-6 = HIGH + #endif + ttw(ttr(TTrEventLow,"pwr_modulate_init(%d)" NL, 0xff)); +} + +void pwr_modulate_on(void) { + ttw(ttr(TTrEventLow,"pwr_modulate_on(%d)" NL, 0)); +#if (USE_Q401_CHG_CIRCUIT== 1) + /* Program the DAC with the constant current value taken from /pwr/chg/chg<N>.cfg multiplied by k/255, where current k is in [1..255] */ + ABB_Write_Register_on_page(PAGE0, CHGREG, (pwr_cfg->data.k * pwr_cfg->chg.ichg_max) / 255); +#endif +#if (USE_Q402_CHG_CIRCUIT == 1) + #if (USE_PWL_AS_MODULATOR == 1) + BUZZ_LIGHT_REG |= 0x02; + PWL_LEVEL_REG = 0xFF; // Full envelope function + PWL_CTRL_REG = 0x00; // No 32KHz clock + #else + // Use GPIO 6 + *((volatile uint16 *) 0xfffe4806) |= 0x0020; // Enable GPIO module + *((volatile uint16 *) 0xfffe4804) &= 0xffbf; // Set GPIO-6 = output + *((volatile uint16 *) 0xfffe4802) |= 0x0080; // Set GPIO-6 = HIGH + #endif +#endif + ttw(ttr(TTrEventLow,"pwr_modulate_on(%d)" NL, 0xFF)); + +} + +void pwr_modulate_off(void) { + ttw(ttr(TTrEventLow,"pwr_modulate_off(%d)" NL, 0)); +#if (USE_Q401_CHG_CIRCUIT == 1) + // Don't do anything - FET is fully controlled in pwr_modulate_on() +#endif +#if (USE_Q402_CHG_CIRCUIT == 1) + #ifdef USE_PWL_AS_MODULATOR + BUZZ_LIGHT_REG &= 0xfd; + PWL_LEVEL_REG = 0x00; // No envelope function + PWL_CTRL_REG = 0x00; // No 32KHz clock + #else + // Use GPIO 6 + *((volatile uint16 *) 0xfffe4806) |= 0x0020; // Enable GPIO module + *((volatile uint16 *) 0xfffe4804) &= 0xffbf; // Set GPIO-6 = output + *((volatile uint16 *) 0xfffe4802) &= 0x007f; // Set GPIO-6 = LOW + #endif +#endif + ttw(ttr(TTrEventLow,"pwr_modulate_off(%d)" NL, 0xFF)); +} +