Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
631476d7
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
631476d7
编写于
5月 27, 2016
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/topic/rt298' into asoc-next
上级
ad2ab00c
9ff49ce4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
28 deletion
+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
未找到文件。
sound/soc/codecs/rt298.c
浏览文件 @
631476d7
...
@@ -276,6 +276,8 @@ static int rt298_jack_detect(struct rt298_priv *rt298, bool *hp, bool *mic)
...
@@ -276,6 +276,8 @@ static int rt298_jack_detect(struct rt298_priv *rt298, bool *hp, bool *mic)
}
else
{
}
else
{
*
mic
=
false
;
*
mic
=
false
;
regmap_write
(
rt298
->
regmap
,
RT298_SET_MIC1
,
0x20
);
regmap_write
(
rt298
->
regmap
,
RT298_SET_MIC1
,
0x20
);
regmap_update_bits
(
rt298
->
regmap
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0000
);
}
}
}
else
{
}
else
{
regmap_read
(
rt298
->
regmap
,
RT298_GET_HP_SENSE
,
&
buf
);
regmap_read
(
rt298
->
regmap
,
RT298_GET_HP_SENSE
,
&
buf
);
...
@@ -482,6 +484,26 @@ static int rt298_adc_event(struct snd_soc_dapm_widget *w,
...
@@ -482,6 +484,26 @@ static int rt298_adc_event(struct snd_soc_dapm_widget *w,
snd_soc_update_bits
(
codec
,
snd_soc_update_bits
(
codec
,
VERB_CMD
(
AC_VERB_SET_AMP_GAIN_MUTE
,
nid
,
0
),
VERB_CMD
(
AC_VERB_SET_AMP_GAIN_MUTE
,
nid
,
0
),
0x7080
,
0x7000
);
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
;
break
;
case
SND_SOC_DAPM_PRE_PMD
:
case
SND_SOC_DAPM_PRE_PMD
:
snd_soc_update_bits
(
codec
,
snd_soc_update_bits
(
codec
,
...
@@ -520,30 +542,12 @@ static int rt298_mic1_event(struct snd_soc_dapm_widget *w,
...
@@ -520,30 +542,12 @@ static int rt298_mic1_event(struct snd_soc_dapm_widget *w,
return
0
;
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
[]
=
{
static
const
struct
snd_soc_dapm_widget
rt298_dapm_widgets
[]
=
{
SND_SOC_DAPM_SUPPLY_S
(
"HV"
,
1
,
RT298_POWER_CTRL1
,
SND_SOC_DAPM_SUPPLY_S
(
"HV"
,
1
,
RT298_POWER_CTRL1
,
12
,
1
,
NULL
,
0
),
12
,
1
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"VREF"
,
RT298_POWER_CTRL1
,
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
,
SND_SOC_DAPM_SUPPLY_S
(
"BG_MBIAS"
,
1
,
RT298_POWER_CTRL2
,
1
,
0
,
NULL
,
0
),
1
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY_S
(
"LDO1"
,
1
,
RT298_POWER_CTRL2
,
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,
...
@@ -934,18 +938,9 @@ static int rt298_set_bias_level(struct snd_soc_codec *codec,
}
}
break
;
break
;
case
SND_SOC_BIAS_ON
:
mdelay
(
30
);
snd_soc_update_bits
(
codec
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0400
);
break
;
case
SND_SOC_BIAS_STANDBY
:
case
SND_SOC_BIAS_STANDBY
:
snd_soc_write
(
codec
,
snd_soc_write
(
codec
,
RT298_SET_AUDIO_POWER
,
AC_PWRST_D3
);
RT298_SET_AUDIO_POWER
,
AC_PWRST_D3
);
snd_soc_update_bits
(
codec
,
RT298_CBJ_CTRL1
,
0x0400
,
0x0000
);
break
;
break
;
default:
default:
...
...
sound/soc/codecs/rt298.h
浏览文件 @
631476d7
...
@@ -137,6 +137,7 @@
...
@@ -137,6 +137,7 @@
#define RT298_A_BIAS_CTRL2 0x02
#define RT298_A_BIAS_CTRL2 0x02
#define RT298_POWER_CTRL1 0x03
#define RT298_POWER_CTRL1 0x03
#define RT298_A_BIAS_CTRL3 0x04
#define RT298_A_BIAS_CTRL3 0x04
#define RT298_D_FILTER_CTRL 0x05
#define RT298_POWER_CTRL2 0x08
#define RT298_POWER_CTRL2 0x08
#define RT298_I2S_CTRL1 0x09
#define RT298_I2S_CTRL1 0x09
#define RT298_I2S_CTRL2 0x0a
#define RT298_I2S_CTRL2 0x0a
...
@@ -148,6 +149,7 @@
...
@@ -148,6 +149,7 @@
#define RT298_IRQ_CTRL 0x33
#define RT298_IRQ_CTRL 0x33
#define RT298_WIND_FILTER_CTRL 0x46
#define RT298_WIND_FILTER_CTRL 0x46
#define RT298_PLL_CTRL1 0x49
#define RT298_PLL_CTRL1 0x49
#define RT298_VAD_CTRL 0x4e
#define RT298_CBJ_CTRL1 0x4f
#define RT298_CBJ_CTRL1 0x4f
#define RT298_CBJ_CTRL2 0x50
#define RT298_CBJ_CTRL2 0x50
#define RT298_PLL_CTRL 0x63
#define RT298_PLL_CTRL 0x63
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录