FreeCalypso > hg > fc-tourmaline
annotate src/cs/drivers/drv_app/buzzer/vibrator.c @ 301:4bb5772a05a3
AT%SPVER: new command for setting custom speech version lists
The speech version list in the Bearer Capability IE tells the network
which speech codecs are supported by the MS, and in which order of
preference. The standard behaviour is to list all codecs that are
supported by the hw+fw platform, and the standard preference order
is newer over older, FR over HR. But sometimes it is desirable
(for network testing) to artificially restrict which codecs the test MS
will declare as supported, and/or to list them in some peculiar
non-standard order of preference. Add a new private AT command,
AT%SPVER, allowing the user to set and clear custom speech version
lists for the Bearer Capability IE composer in CC.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 21 May 2023 21:43:10 +0000 |
| parents | 4d203ef0eb4b |
| children |
| 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 } |
