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
Kirill Smelkov
linux
Commits
6afff9e0
Commit
6afff9e0
authored
Jun 22, 2015
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/simple' into asoc-next
parents
71d8c2d7
85a4bfd8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
4 deletions
+20
-4
Documentation/devicetree/bindings/sound/simple-card.txt
Documentation/devicetree/bindings/sound/simple-card.txt
+5
-1
sound/soc/generic/simple-card.c
sound/soc/generic/simple-card.c
+15
-3
No files found.
Documentation/devicetree/bindings/sound/simple-card.txt
View file @
6afff9e0
...
@@ -16,7 +16,8 @@ Optional properties:
...
@@ -16,7 +16,8 @@ Optional properties:
connection's sink, the second being the connection's
connection's sink, the second being the connection's
source.
source.
- simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec
- simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec
mclk.
mclk. When defined, mclk-fs property defined in
dai-link sub nodes are ignored.
- simple-audio-card,hp-det-gpio : Reference to GPIO that signals when
- simple-audio-card,hp-det-gpio : Reference to GPIO that signals when
headphones are attached.
headphones are attached.
- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when
- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when
...
@@ -55,6 +56,9 @@ Optional dai-link subnode properties:
...
@@ -55,6 +56,9 @@ Optional dai-link subnode properties:
dai-link uses bit clock inversion.
dai-link uses bit clock inversion.
- frame-inversion : bool property. Add this if the
- frame-inversion : bool property. Add this if the
dai-link uses frame clock inversion.
dai-link uses frame clock inversion.
- mclk-fs : Multiplication factor between stream
rate and codec mclk, applied only for
the dai-link.
For backward compatibility the frame-master and bitclock-master
For backward compatibility the frame-master and bitclock-master
properties can be used as booleans in codec subnode to indicate if the
properties can be used as booleans in codec subnode to indicate if the
...
...
sound/soc/generic/simple-card.c
View file @
6afff9e0
...
@@ -26,6 +26,7 @@ struct simple_card_data {
...
@@ -26,6 +26,7 @@ struct simple_card_data {
struct
simple_dai_props
{
struct
simple_dai_props
{
struct
asoc_simple_dai
cpu_dai
;
struct
asoc_simple_dai
cpu_dai
;
struct
asoc_simple_dai
codec_dai
;
struct
asoc_simple_dai
codec_dai
;
unsigned
int
mclk_fs
;
}
*
dai_props
;
}
*
dai_props
;
unsigned
int
mclk_fs
;
unsigned
int
mclk_fs
;
int
gpio_hp_det
;
int
gpio_hp_det
;
...
@@ -76,11 +77,18 @@ static int asoc_simple_card_hw_params(struct snd_pcm_substream *substream,
...
@@ -76,11 +77,18 @@ static int asoc_simple_card_hw_params(struct snd_pcm_substream *substream,
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
simple_card_data
*
priv
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
struct
simple_card_data
*
priv
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
unsigned
int
mclk
;
struct
simple_dai_props
*
dai_props
=
&
priv
->
dai_props
[
rtd
-
rtd
->
card
->
rtd
];
unsigned
int
mclk
,
mclk_fs
=
0
;
int
ret
=
0
;
int
ret
=
0
;
if
(
priv
->
mclk_fs
)
{
if
(
priv
->
mclk_fs
)
mclk
=
params_rate
(
params
)
*
priv
->
mclk_fs
;
mclk_fs
=
priv
->
mclk_fs
;
else
if
(
dai_props
->
mclk_fs
)
mclk_fs
=
dai_props
->
mclk_fs
;
if
(
mclk_fs
)
{
mclk
=
params_rate
(
params
)
*
mclk_fs
;
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
0
,
mclk
,
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
0
,
mclk
,
SND_SOC_CLOCK_IN
);
SND_SOC_CLOCK_IN
);
}
}
...
@@ -313,6 +321,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
...
@@ -313,6 +321,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
char
prop
[
128
];
char
prop
[
128
];
char
*
prefix
=
""
;
char
*
prefix
=
""
;
int
ret
,
cpu_args
;
int
ret
,
cpu_args
;
u32
val
;
/* For single DAI link & old style of DT node */
/* For single DAI link & old style of DT node */
if
(
is_top_level_node
)
if
(
is_top_level_node
)
...
@@ -338,6 +347,9 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
...
@@ -338,6 +347,9 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
dai_link_of_err
;
goto
dai_link_of_err
;
if
(
!
of_property_read_u32
(
node
,
"mclk-fs"
,
&
val
))
dai_props
->
mclk_fs
=
val
;
ret
=
asoc_simple_card_sub_parse_of
(
cpu
,
&
dai_props
->
cpu_dai
,
ret
=
asoc_simple_card_sub_parse_of
(
cpu
,
&
dai_props
->
cpu_dai
,
&
dai_link
->
cpu_of_node
,
&
dai_link
->
cpu_of_node
,
&
dai_link
->
cpu_dai_name
,
&
dai_link
->
cpu_dai_name
,
...
...
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