blob: 0fd406223701a2665cbddcea6b9cba5147efa7f1 [file] [log] [blame]
/*
* TAS5760 speaker amplifier driver
*
* Copyright (C) 2015 Imagination Technologies, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef _SND_SOC_CODEC_TAS5760_H_
#define _SND_SOC_CODEC_TAS5760_H_
/* Register Address Map */
#define TAS5760_DEVICE_ID 0x00
#define TAS5760_POWER_CTRL 0x01
#define TAS5760_DIGITAL_CTRL 0x02
#define TAS5760_VOL_CTRL 0x03
#define TAS5760_VOL_CTRL_L 0x04
#define TAS5760_VOL_CTRL_R 0x05
#define TAS5760_ANALOG_CTRL 0x06
#define TAS5760_ERR_STATUS 0x08
#define TAS5760_DIGITAL_CLIP_CTRL2 0x10
#define TAS5760_DIGITAL_CLIP_CTRL1 0x11
#define TAS5760_MAX_REG TAS5760_DIGITAL_CLIP_CTRL1
/* Register bit values/masks */
#define TAS5760_SPK_SD_MASK 0x01
#define TAS5760_PBTL_EN_MASK 0x80
#define TAS5760_PBTL_EN_VAL(val) ((val) << 7)
#define TAS5760_PBTL_CH_VAL(val) ((val) << 1)
#define TAS5760_PBTL_CH_MASK 0x02
#define TAS5760_PBTL_MASK (TAS5760_PBTL_EN_MASK | TAS5760_PBTL_CH_MASK)
#define TAS5760_VOL_FADE_MASK 0x80
#define TAS5760_VOL_FADE_VAL(val) ((val) << 7)
#define TAS5760_MUTE_L_MASK 0x01
#define TAS5760_MUTE_R_MASK 0x02
#define TAS5760_MUTE_MASK (TAS5760_MUTE_L_MASK | TAS5760_MUTE_R_MASK)
#define TAS5760_DS_MASK 0x08
#define TAS5760_DIGITAL_CLIP_MAX_VAL 0xFFFFF
#define TAS5760_DIGITAL_CLIP_MASK 0xFC
#define TAS5760_DIGITAL_CLIP1_VAL(val) ((val) << 2)
#define TAS5760_DIGITAL_CLIP2_VAL(val) ((val) >> 6)
#define TAS5760_DIGITAL_CLIP3_VAL(val) ((val) >> 12)
#define TAS5760_DIGITAL_BOOST_MASK 0x30
#define TAS5760_DIGITAL_BOOST_VAL(val) ((val) << 4)
#define TAS5760_ANALOG_GAIN_MASK 0x0C
#define TAS5760_ANALOG_GAIN_VAL(val) ((val) << 2)
#define TAS5760_PWM_RATE_MAX 7
#define TAS5760_PWM_RATE_MASK 0x70
#define TAS5760_PWM_RATE_VAL(val) ((val) << 4)
#endif /* _SND_SOC_CODEC_TAS5760_H_ */