ASoC: cs35l36: Add boost control for external supply

If supplying boost voltage externally you have to
put the device in specific setting or damage may occur

Add DAPM_POST events to setup the correct up/dn
Add DT boolean to specify external or internal boost

Change-Id: I449b18601757127d6570d6e5bca1db3f2c7938ae
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Ravi Vembu <raviv@motorola.com>
Mot-CRs-fixed: (CR)
Reviewed-on: https://gerrit.mot.com/1140358
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Submit-Approved: Jira Key
This commit is contained in:
Brian Austin 2017-09-27 14:37:42 -05:00 • committed by Ravikumar Vembu
commit ea2b640cb6
3 changed files with 18 additions and 0 deletions

View file

@ -38,6 +38,7 @@ struct cs35l36_platform_data {
int bst_vctl;
int bst_vctl_sel;
int bst_ipk;
bool extern_boost;
int temp_warn_thld;
struct irq_cfg irq_config;
};

View file

@ -202,6 +202,12 @@ static int cs35l36_main_amp_event(struct snd_soc_dapm_widget *w,
switch (event) {
case SND_SOC_DAPM_POST_PMU:
if (!cs35l36->pdata.extern_boost)
regmap_update_bits(cs35l36->regmap, CS35L36_PWR_CTRL2,
CS35L36_BST_EN_MASK,
CS35L36_BST_EN <<
CS35L36_BST_EN_SHIFT);
regmap_update_bits(cs35l36->regmap, CS35L36_PWR_CTRL1,
CS35L36_GLOBAL_EN_MASK,
1 << CS35L36_GLOBAL_EN_SHIFT);
@ -218,6 +224,12 @@ static int cs35l36_main_amp_event(struct snd_soc_dapm_widget *w,
0 << CS35L36_AMP_MUTE_SHIFT);
break;
case SND_SOC_DAPM_POST_PMD:
if (!cs35l36->pdata.extern_boost)
regmap_update_bits(cs35l36->regmap, CS35L36_PWR_CTRL2,
CS35L36_BST_EN_MASK,
CS35L36_BST_DIS_VP <<
CS35L36_BST_EN_SHIFT);
regmap_update_bits(cs35l36->regmap, CS35L36_ASP_RX1_SEL,
CS35L36_PCM_RX_SEL_MASK,
CS35L36_PCM_RX_SEL_ZERO);

View file

@ -307,6 +307,11 @@
#define CS35L36_PLL_IGAIN_SHIFT 4
#define CS35L36_PLL_IGAIN 0x04
#define CS35L36_BST_EN_MASK 0x30
#define CS35L36_BST_EN 0x02
#define CS35L36_BST_DIS_VP 0x01
#define CS35L36_BST_DIS_EXTN 0x00
#define CS35L36_BST_EN_SHIFT 4
#define CS35L36_BST_MAN_IPKCOMP_MASK 0x200
#define CS35L36_BST_MAN_IPKCOMP_SHIFT 9