afe.c 6.91 KB
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*******************************************************************************
 *
 * Filename:
 * ---------
 * afe.c
 *
 * Project:
 * --------
 *   MT6219
 *
 * Description:
 * ------------
 *   Audio Front End
 *
 * Author:
 * -------
 * -------
 *
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *******************************************************************************/
#include "afe_def.h"
extern void GPO_WriteIO(char data,char port);

/*****************************************************************************
* FUNCTION
*  AFE_Initialize
* DESCRIPTION
*   This function is to set the initial value of AFE HW.
*****************************************************************************/
void AFE_Initialize( void )
{
}

/*****************************************************************************
* FUNCTION
*  AFE_SwitchExtAmplifier
* DESCRIPTION
*   This function is to turn on/off external amplifier.
***************************************************************************
/****************************************
void AFE_SwitchExtAmplifier( char sw_on )
{
    if( sw_on )
        GPO_WriteIO( 1, 1 );
    else
        GPO_WriteIO( 0, 1 );
	
}
*****************************************/

#if defined(__TOPWELL_CLASS_K__)

extern const char gpio_afe_amplifier_pin;

#if defined(__TOPWELL_T326__)||defined(__TOPWELL_T3286__)||defined(__TOPWELL_T337__)||defined(__TOPWELL_T3243__)||defined(__TOPWELL_T3245__)||defined(__TOPWELL_T3246__)
#define class_k_control_pin    17

#elif defined(__TOPWELL_T3212__)

#define class_k_control_pin    55

///#elif defined(__TOPWELL_T3243__)

///#define class_k_control_pin    55

#elif defined(__TOPWELL_T3246__)

#define class_k_control_pin    17

#elif defined(__TOPWELL_F186__)
#define class_k_control_pin    17

#else
#define class_k_control_pin    gpio_afe_amplifier_pin
#endif

void turn_on_class_K(void)
{
	volatile kal_uint16 iDelay;
	GPIO_ModeSetup(class_k_control_pin,0);
	GPIO_InitIO(1,class_k_control_pin);
	GPIO_WriteIO(0,class_k_control_pin);
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 1, class_k_control_pin);     // 1
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 0, class_k_control_pin);
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 1, class_k_control_pin);    // 2
	for (iDelay =0;iDelay <30;iDelay++){}  
	GPIO_WriteIO( 0, class_k_control_pin);
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 1, class_k_control_pin);  // 3
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 0, class_k_control_pin);
	for (iDelay =0;iDelay <30;iDelay++){}
	GPIO_WriteIO( 1, class_k_control_pin);    // 4
}
void turn_off_class_K(void)
{
	 GPIO_ModeSetup(class_k_control_pin,0);
	 GPIO_InitIO(1,class_k_control_pin);
	 GPIO_WriteIO(0,class_k_control_pin);
}

void AFE_SwitchExtAmplifier( char sw_on )
{   
   if( sw_on )
     //pmic_speaker_enable(KAL_TRUE);
   	{
		turn_on_class_K();
	}
   else
   	{
		turn_off_class_K();
   	}
}

#elif defined(__TOPWELL_CLASS_D__)

#if defined(__TOPWELL_T308__)
#define class_d_control_pin    55

#elif defined(__TOPWELL_F186__)
#define class_k_control_pin    55

#else
extern const char gpio_afe_amplifier_pin;
#define class_d_control_pin    gpio_afe_amplifier_pin
#endif

void turn_on_class_D(void)
{
	GPIO_ModeSetup(class_d_control_pin,0);
	GPIO_InitIO(1,class_d_control_pin);
	GPIO_WriteIO(1,class_d_control_pin);
}
void turn_off_class_D(void)
{
	 GPIO_ModeSetup(class_d_control_pin,0);
	 GPIO_InitIO(1,class_d_control_pin);
	 GPIO_WriteIO(0,class_d_control_pin);
}

void AFE_SwitchExtAmplifier( char sw_on )
{   
   if( sw_on )
     //pmic_speaker_enable(KAL_TRUE);
   	{
		turn_on_class_D();
	}
   else
   	{
		turn_off_class_D();
   	}
}

#else
void AFE_SwitchExtAmplifier( char sw_on )
{
    if( sw_on )
        GPO_WriteIO( 1, 1 );
    else
        GPO_WriteIO( 0, 1 );
}
#endif