Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
631476d7
Commit
631476d7
authored
May 27, 2016
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/rt298' into asoc-next
parents
ad2ab00c
9ff49ce4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
28 deletions
+25
-28
sound/soc/codecs/rt298.c
sound/soc/codecs/rt298.c
+23
-28
sound/soc/codecs/rt298.h
sound/soc/codecs/rt298.h
+2
-0
No files found.
sound/soc/codecs/rt298.c
View file @
631476d7
...
...
@@ -276,6 +276,8 @@ static int rt298_jack_detect(struct rt298_priv *rt298, bool *hp, bool *mic)
}
else
{
*
mic
=
false
;
regmap_write
(
rt298
->
regmap
,
RT298_SET_MIC1
,
0x20
);
regmap_update_bits
(
rt298
->
regmap
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0000
);
}
}
else
{
regmap_read
(
rt298
->
regmap
,
RT298_GET_HP_SENSE
,
&
buf
);
...
...
@@ -482,6 +484,26 @@ static int rt298_adc_event(struct snd_soc_dapm_widget *w,
snd_soc_update_bits
(
codec
,
VERB_CMD
(
AC_VERB_SET_AMP_GAIN_MUTE
,
nid
,
0
),
0x7080
,
0x7000
);
/* If MCLK doesn't exist, reset AD filter */
if
(
!
(
snd_soc_read
(
codec
,
RT298_VAD_CTRL
)
&
0x200
))
{
pr_info
(
"NO MCLK
\n
"
);
switch
(
nid
)
{
case
RT298_ADC_IN1
:
snd_soc_update_bits
(
codec
,
RT298_D_FILTER_CTRL
,
0x2
,
0x2
);
mdelay
(
10
);
snd_soc_update_bits
(
codec
,
RT298_D_FILTER_CTRL
,
0x2
,
0x0
);
break
;
case
RT298_ADC_IN2
:
snd_soc_update_bits
(
codec
,
RT298_D_FILTER_CTRL
,
0x4
,
0x4
);
mdelay
(
10
);
snd_soc_update_bits
(
codec
,
RT298_D_FILTER_CTRL
,
0x4
,
0x0
);
break
;
}
}
break
;
case
SND_SOC_DAPM_PRE_PMD
:
snd_soc_update_bits
(
codec
,
...
...
@@ -520,30 +542,12 @@ static int rt298_mic1_event(struct snd_soc_dapm_widget *w,
return
0
;
}
static
int
rt298_vref_event
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
snd_soc_dapm_to_codec
(
w
->
dapm
);
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
snd_soc_update_bits
(
codec
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0000
);
mdelay
(
50
);
break
;
default:
return
0
;
}
return
0
;
}
static
const
struct
snd_soc_dapm_widget
rt298_dapm_widgets
[]
=
{
SND_SOC_DAPM_SUPPLY_S
(
"HV"
,
1
,
RT298_POWER_CTRL1
,
12
,
1
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"VREF"
,
RT298_POWER_CTRL1
,
0
,
1
,
rt298_vref_event
,
SND_SOC_DAPM_PRE_PMU
),
0
,
1
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY_S
(
"BG_MBIAS"
,
1
,
RT298_POWER_CTRL2
,
1
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY_S
(
"LDO1"
,
1
,
RT298_POWER_CTRL2
,
...
...
@@ -934,18 +938,9 @@ static int rt298_set_bias_level(struct snd_soc_codec *codec,
}
break
;
case
SND_SOC_BIAS_ON
:
mdelay
(
30
);
snd_soc_update_bits
(
codec
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0400
);
break
;
case
SND_SOC_BIAS_STANDBY
:
snd_soc_write
(
codec
,
RT298_SET_AUDIO_POWER
,
AC_PWRST_D3
);
snd_soc_update_bits
(
codec
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0000
);
break
;
default:
...
...
sound/soc/codecs/rt298.h
View file @
631476d7
...
...
@@ -137,6 +137,7 @@
#define RT298_A_BIAS_CTRL2 0x02
#define RT298_POWER_CTRL1 0x03
#define RT298_A_BIAS_CTRL3 0x04
#define RT298_D_FILTER_CTRL 0x05
#define RT298_POWER_CTRL2 0x08
#define RT298_I2S_CTRL1 0x09
#define RT298_I2S_CTRL2 0x0a
...
...
@@ -148,6 +149,7 @@
#define RT298_IRQ_CTRL 0x33
#define RT298_WIND_FILTER_CTRL 0x46
#define RT298_PLL_CTRL1 0x49
#define RT298_VAD_CTRL 0x4e
#define RT298_CBJ_CTRL1 0x4f
#define RT298_CBJ_CTRL2 0x50
#define RT298_PLL_CTRL 0x63
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment