FreeCalypso > hg > fc-tourmaline
view src/cs/drivers/drv_app/buzzer/vibrator.c @ 304:58c7961bd0b0 default tip
TCH tap: extend DL sniffing feature to support CSD modes
Our debug feature for TCH DL sniffing reads the content of the DSP's
a_dd_0 buffer (or a_dd_1 for TCH/H subchannel 1) at appropriate times
and forwards captured bits to the host. This feature was originally
implemented for TCH/FS, TCH/EFS and TCH/HS - now extend it to cover
TCH/F data modes too.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 25 Nov 2024 23:33:27 +0000 |
parents | 4d203ef0eb4b |
children |
line wrap: on
line source
/* * This C module is a FreeCalypso addition: it implements hardware vibrator * control as appropriate for different hw targets. */ #include "main/sys_types.h" #include "memif/mem.h" #include "armio/armio.h" #include "buzzer.h" #include "vibrator.h" #include "abb/abb.h" #include "board.cfg" #include "fc-target.h" /* flag tells L1 to suppress deep sleep */ SYS_BOOL HW_vibrator_is_on; void HW_vibrator_on(SYS_UWORD8 level) { HW_vibrator_is_on = 1; #ifdef CONFIG_TARGET_PIRELLI /* vibrator is controlled via BU output */ BZ_Tone(0); BZ_Volume(level >> 2); BZ_Enable(); #elif defined(CONFIG_TARGET_COMPAL) /* vibrator is controlled via Iota AUX DAC */ ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x20); ABB_Write_Register_on_page(PAGE0, AUXDAC, (level << 2) | 3); #endif } void HW_vibrator_off(void) { #ifdef CONFIG_TARGET_PIRELLI BZ_Disable(); #elif defined(CONFIG_TARGET_COMPAL) ABB_Write_Register_on_page(PAGE0, AUXDAC, 0); ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x10); #endif HW_vibrator_is_on = 0; }