annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
289
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This C module is a FreeCalypso addition: it implements hardware vibrator
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * control as appropriate for different hw targets.
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include "main/sys_types.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include "memif/mem.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include "armio/armio.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include "buzzer.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include "vibrator.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include "abb/abb.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "board.cfg"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include "fc-target.h"
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 /* flag tells L1 to suppress deep sleep */
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 SYS_BOOL HW_vibrator_is_on;
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 void HW_vibrator_on(SYS_UWORD8 level)
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 {
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 HW_vibrator_is_on = 1;
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 #ifdef CONFIG_TARGET_PIRELLI
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 /* vibrator is controlled via BU output */
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 BZ_Tone(0);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 BZ_Volume(level >> 2);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 BZ_Enable();
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 #elif defined(CONFIG_TARGET_COMPAL)
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 /* vibrator is controlled via Iota AUX DAC */
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x20);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 ABB_Write_Register_on_page(PAGE0, AUXDAC, (level << 2) | 3);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 #endif
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 }
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 void HW_vibrator_off(void)
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 {
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 #ifdef CONFIG_TARGET_PIRELLI
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 BZ_Disable();
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 #elif defined(CONFIG_TARGET_COMPAL)
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 ABB_Write_Register_on_page(PAGE0, AUXDAC, 0);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 ABB_Write_Register_on_page(PAGE0, TOGBR1, 0x10);
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 #endif
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 HW_vibrator_is_on = 0;
4d203ef0eb4b implement vibrator on/off control driver
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 }