view src/ui3/bmi/mmiBuzzer.h @ 639:026c98f757a6

tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only As it turns out, there exist two different Huawei-made hw platforms both bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT. The two are NOT fw-compatible: aside from flash chip differences which should be handled by autodetection, the two hw platforms are already known to have different RFFEs with different control signals, and there may be other differences not yet known. Our current gtm900 build target is for MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence no support for that version will be possible until and unless someone provides one.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 30 Jan 2020 18:19:01 +0000
parents 6a4d9f47793e
children
line wrap: on
line source

/*******************************************************************************

					CONDAT (UK)

********************************************************************************                                                                              

 This software product is the property of Condat (UK) Ltd and may not be
 disclosed to any third party without the express permission of the owner.                                 
                                                                              
********************************************************************************

 $Project name:	Basic MMI                                                      
 $Project code:	BMI (6349)                                                           
 $Module:		PhoneBook
 $File:		    MmiBuzzer.h
 $Revision:		1.0                                                       
                                                                              
 $Author:		Condat(UK)                                                         
 $Date:		    25/10/00                                                      
                                                                               
********************************************************************************
                                                                              
 Description:
                        
********************************************************************************

 $History: MmiBuzzer.h

	25/10/00			Original Condat(UK) BMI version.	
	   
 $End

*******************************************************************************/


#if !defined(BUZZER_H)
#define BUZZER_H

#define USE_PWT	// use build in tone generator cascade.


#define BUZZER_ASIC_CONF_REG		( *( ( volatile USHORT* ) 0xFFFEF008) )
#define	BUZZER_BZ_OR_PWT			0x20	// bit 5 = 0 for BZ =1 for PWT
#define BUZZER_FREE_BIT_CLOCK_EN			0xFF		// See HER207 Section 7.4.5
#define BUZZER_ARMIO_CNTL			( *( ( volatile USHORT* ) 0xFFFE4806) )

#define BUZZER_ON							0x01 		// Set bit 0
#define BUZZER_OFF							0xFE		// Reset bit 0

#ifdef USE_PWT

#define PWT_FRC_REG		( *( ( volatile UBYTE* ) 0xFFFE8800) )
#define PWT_VCR_REG		( *( ( volatile UBYTE* ) 0xFFFE8801) )
#define PWT_CGR_REG		( *( ( volatile UBYTE* ) 0xFFFE8802) )

#define BUZZER_MAX_VOL 0x3F


#else
// Bit definitions in CNTL
#define	BUZZER_SET_GPIO					0x0FDF		// Set bit 5
#define BUZZER_FREQ_CLOCK					0xC65D40 	// 13 MHz
#define BUZZER_2_POWER_9					0x0200		// See HER207 section 7.4.14


#define BUZZER_LEVEL_REG			( *( ( volatile USHORT* ) 0xFFFE4812) )
#define BUZZER_CNTL_REG				( *( ( volatile USHORT* ) 0xFFFE480E) )
#define BUZZER_LOAD_TIM_REG			( *( ( volatile USHORT* ) 0xFFFE4808) )
#endif




// define available buzzer tones
#if 0
#define g1  41
#define gs2 36
#define a1  33
#define as1 29
#define b1  25
#define c2  21
#define cs2 17
#define d2  13
#define ds2 7
#define e2  5
#define f2  48
#define fs2 44
#define fs1 45
#define g2 40
#define gs2 36
#define gs1 37
#define a2  32
#define as2 28
#define b2  24
#define c3  20
#define cs3 16
#define d3  12 
#define ds3 8
#define e3  4
#define f1  49
#define f2  48
#define f3  47  // 349
#define fs3 43  // 370
#define g3  39  // 392
#define gs3 35  // 415
#define a3  31  // 440
#define as3 27  // 466
#define b3  23  // 494
#define c4  19  // 523
#define cs4 15  // 554
#define d4  11  // 587
#define ds4  7  // 622
#define e4  3 // 659
#define f4  46  // 698
#define fs4  42  // 740
#define g4  38  // 784
#define gs4 34  // 831
#define a4  30  // 880
#define as4 26  // 932
#define b4  22  // 988
#define c5  18  // 1047
#define cs5 14  // 1109
#define d5  10  // 1175
#define ds5 6  // 1245
#define e5  2 // 1319
#define f5   45  // 1397
#define fs5  41  // 1480
#define g5  37  // 1568
#define gs5 33  // 1661
#define a5  29  // 1760
#define as5 25  // 1865
#define b5  21  // 1976
#define c6  17  // 2093
#define cs6 13  // 2217
#define d6   9  // 2349
#define ds6  5  // 2489
#define e6   1  // 2637
#define f6   44  // 2794
#define fs6  40  // 2960
#define g6  36  // 3136
#define gs6 32  // 3322
#define a6  28  // 3520
#define as6 24  // 3729
#define b6  20  // 3951
#define c7  16  // 4186
#define cs7 12  // 4435
#define d7  8  // 4699
#define ds7 4  // 4978
#define e7  0  // 5274
#endif
#define ds1  73
#define e1 72
#define f1  71
#define fs1 70
#define g1  69
#define gs1  68
#define a1 67
#define as1  66
#define b1 65
#define c2  64
#define cs2  63
#define d2 62
#define ds2 61
#define e2 60
#define f2 59
#define fs2 58
#define g2  57
#define gs2 56
#define a2  55
#define as2  54
#define b2 53
#define c3  52 
#define cs3 51
#define d3  50
#define ds3  49
#define e3  48
#define f3  47  // 349
#define fs3 46  // 370
#define g3  45  // 392
#define gs3 44  // 415
#define a3  43  // 440
#define as3 42  // 466
#define b3  41  // 494
#define c4  40  // 523
#define cs4 39  // 554
#define d4  38  // 587
#define ds4  37  // 622
#define e4  36 // 659
#define f4  35  // 698
#define fs4  34  // 740
#define g4  33  // 784
#define gs4 32  // 831
#define a4  31  // 880
#define as4 30  // 932
#define b4  29  // 988
#define c5  28  // 1047
#define cs5 27  // 1109
#define d5  26  // 1175
#define ds5 25  // 1245
#define e5  24 // 1319
#define f5   23  // 1397
#define fs5  22  // 1480
#define g5  21  // 1568
#define gs5 20  // 1661
#define a5  19  // 1760
#define as5 18  // 1865
#define b5  17  // 1976
#define c6  16  // 2093
#define cs6 15  // 2217
#define d6   14  // 2349
#define ds6  13  // 2489
#define e6   12  // 2637
#define f6   11  // 2794
#define fs6  10  // 2960
#define g6  9  // 3136
#define gs6 8  // 3322
#define a6  7  // 3520
#define as6 6  // 3729
#define b6  5  // 3951
#define c7  4  // 4186
#define cs7 3  // 4435
#define d7  2  // 4699
#define ds7 1  // 4978
#define e7  0  // 5274

#define bf1 as1
#define bf2 as2
#define bf3 as3
#define bf1 as1
#define BZ_REST 0x3F
#define BZ_TERM 0xFF




void buzzer_Initialize(void);
void buzzer_On(void);
void buzzer_Off(void);
void buzzer_Tone(int in_freqTone);
void buzzer_Volume(int in_Volume);


#endif