blob: e899ca841c6271644cba7c8a0d68141269e7e165 [file] [log] [blame]
/*
*Copyright 2014,215 NXP Semiconductors
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
*http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/
#include "tfa_dsp_fw.h"
#include "tfa_service.h"
#include "tfa_internal.h"
#include "tfa98xx_tfafieldnames.h"
static enum Tfa98xx_Error tfa9887_specific(Tfa98xx_handle_t handle)
{
enum Tfa98xx_Error error = Tfa98xx_Error_Ok;
int result;
if (!tfa98xx_handle_is_open(handle))
return Tfa98xx_Error_NotOpen;
/* all i2C registers are already set to default */
result = TFA_SET_BF(handle, AMPE, 1);
if (result < 0)
return -result;
/* some other registers must be set for optimal amplifier behaviour */
tfa98xx_write_register16(handle, 0x05, 0x13AB);
tfa98xx_write_register16(handle, 0x06, 0x001F);
tfa98xx_write_register16(handle, 0x08, 0x3C4E);
/*TFA98XX_SYSCTRL_DCA=0*/
tfa98xx_write_register16(handle, 0x09, 0x024D);
tfa98xx_write_register16(handle, 0x0A, 0x3EC3);
tfa98xx_write_register16(handle, 0x41, 0x0308);
error = tfa98xx_write_register16(handle, 0x49, 0x0E82);
return error;
}
/*
* register device specifics functions
*/
void tfa9887_ops(struct tfa_device_ops *ops) {
ops->tfa_init=tfa9887_specific;
}