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
5881af77
Commit
5881af77
authored
Mar 13, 2014
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/kirkwood' into asoc-next
parents
4c11a761
74d04c3e
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
157 additions
and
1 deletion
+157
-1
Documentation/devicetree/bindings/sound/armada-370db-audio.txt
...entation/devicetree/bindings/sound/armada-370db-audio.txt
+24
-0
Documentation/devicetree/bindings/sound/mvebu-audio.txt
Documentation/devicetree/bindings/sound/mvebu-audio.txt
+1
-0
sound/soc/kirkwood/Kconfig
sound/soc/kirkwood/Kconfig
+9
-1
sound/soc/kirkwood/Makefile
sound/soc/kirkwood/Makefile
+2
-0
sound/soc/kirkwood/armada-370-db.c
sound/soc/kirkwood/armada-370-db.c
+120
-0
sound/soc/kirkwood/kirkwood-i2s.c
sound/soc/kirkwood/kirkwood-i2s.c
+1
-0
No files found.
Documentation/devicetree/bindings/sound/armada-370db-audio.txt
0 → 100644
View file @
5881af77
Device Tree bindings for the Armada 370 DB audio
================================================
These Device Tree bindings are used to describe the audio complex
found on the Armada 370 DB platform.
Mandatory properties:
* compatible: must be "marvell,a370db-audio"
* marvell,audio-controller: a phandle that points to the audio
controller of the Armada 370 SoC.
* marvell,audio-codec: a phandle that points to the analog audio
codec connected to the Armada 370 SoC.
Example:
sound {
compatible = "marvell,a370db-audio";
marvell,audio-controller = <&audio_controller>;
marvell,audio-codec = <&audio_codec>;
status = "okay";
};
Documentation/devicetree/bindings/sound/mvebu-audio.txt
View file @
5881af77
...
...
@@ -5,6 +5,7 @@ Required properties:
- compatible:
"marvell,kirkwood-audio" for Kirkwood platforms
"marvell,dove-audio" for Dove platforms
"marvell,armada370-audio" for Armada 370 platforms
- reg: physical base address of the controller and length of memory mapped
region.
...
...
sound/soc/kirkwood/Kconfig
View file @
5881af77
config SND_KIRKWOOD_SOC
tristate "SoC Audio for the Marvell Kirkwood and Dove chips"
depends on ARCH_KIRKWOOD || ARCH_DOVE || COMPILE_TEST
depends on ARCH_KIRKWOOD || ARCH_DOVE ||
ARCH_MVEBU ||
COMPILE_TEST
help
Say Y or M if you want to add support for codecs attached to
the Kirkwood I2S interface. You will also need to select the
audio interfaces to support below.
config SND_KIRKWOOD_SOC_ARMADA370_DB
tristate "SoC Audio support for Armada 370 DB"
depends on SND_KIRKWOOD_SOC && (ARCH_MVEBU || COMPILE_TEST) && I2C
select SND_SOC_CS42L51
help
Say Y if you want to add support for SoC audio on
the Armada 370 Development Board.
config SND_KIRKWOOD_SOC_OPENRD
tristate "SoC Audio support for Kirkwood Openrd Client"
depends on SND_KIRKWOOD_SOC && (MACH_OPENRD_CLIENT || MACH_OPENRD_ULTIMATE || COMPILE_TEST)
...
...
sound/soc/kirkwood/Makefile
View file @
5881af77
...
...
@@ -4,6 +4,8 @@ obj-$(CONFIG_SND_KIRKWOOD_SOC) += snd-soc-kirkwood.o
snd-soc-openrd-objs
:=
kirkwood-openrd.o
snd-soc-t5325-objs
:=
kirkwood-t5325.o
snd-soc-armada-370-db-objs
:=
armada-370-db.o
obj-$(CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB)
+=
snd-soc-armada-370-db.o
obj-$(CONFIG_SND_KIRKWOOD_SOC_OPENRD)
+=
snd-soc-openrd.o
obj-$(CONFIG_SND_KIRKWOOD_SOC_T5325)
+=
snd-soc-t5325.o
sound/soc/kirkwood/armada-370-db.c
0 → 100644
View file @
5881af77
/*
* Copyright (C) 2014 Marvell
*
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
*
* 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.
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <sound/soc.h>
#include <linux/of.h>
#include <linux/platform_data/asoc-kirkwood.h>
#include "../codecs/cs42l51.h"
static
int
a370db_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
)
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
unsigned
int
freq
;
switch
(
params_rate
(
params
))
{
default:
case
44100
:
freq
=
11289600
;
break
;
case
48000
:
freq
=
12288000
;
break
;
case
96000
:
freq
=
24576000
;
break
;
}
return
snd_soc_dai_set_sysclk
(
codec_dai
,
0
,
freq
,
SND_SOC_CLOCK_IN
);
}
static
struct
snd_soc_ops
a370db_ops
=
{
.
hw_params
=
a370db_hw_params
,
};
static
const
struct
snd_soc_dapm_widget
a370db_dapm_widgets
[]
=
{
SND_SOC_DAPM_HP
(
"Out Jack"
,
NULL
),
SND_SOC_DAPM_LINE
(
"In Jack"
,
NULL
),
};
static
const
struct
snd_soc_dapm_route
a370db_route
[]
=
{
{
"Out Jack"
,
NULL
,
"HPL"
},
{
"Out Jack"
,
NULL
,
"HPR"
},
{
"AIN1L"
,
NULL
,
"In Jack"
},
{
"AIN1L"
,
NULL
,
"In Jack"
},
};
static
struct
snd_soc_dai_link
a370db_dai
[]
=
{
{
.
name
=
"CS42L51"
,
.
stream_name
=
"analog"
,
.
cpu_dai_name
=
"i2s"
,
.
codec_dai_name
=
"cs42l51-hifi"
,
.
dai_fmt
=
SND_SOC_DAIFMT_I2S
|
SND_SOC_DAIFMT_CBS_CFS
,
.
ops
=
&
a370db_ops
,
},
};
static
struct
snd_soc_card
a370db
=
{
.
name
=
"a370db"
,
.
owner
=
THIS_MODULE
,
.
dai_link
=
a370db_dai
,
.
num_links
=
ARRAY_SIZE
(
a370db_dai
),
.
dapm_widgets
=
a370db_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
a370db_dapm_widgets
),
.
dapm_routes
=
a370db_route
,
.
num_dapm_routes
=
ARRAY_SIZE
(
a370db_route
),
};
static
int
a370db_probe
(
struct
platform_device
*
pdev
)
{
struct
snd_soc_card
*
card
=
&
a370db
;
card
->
dev
=
&
pdev
->
dev
;
a370db_dai
[
0
].
cpu_of_node
=
of_parse_phandle
(
pdev
->
dev
.
of_node
,
"marvell,audio-controller"
,
0
);
a370db_dai
[
0
].
platform_of_node
=
a370db_dai
[
0
].
cpu_of_node
;
a370db_dai
[
0
].
codec_of_node
=
of_parse_phandle
(
pdev
->
dev
.
of_node
,
"marvell,audio-codec"
,
0
);
return
devm_snd_soc_register_card
(
card
->
dev
,
card
);
}
static
const
struct
of_device_id
a370db_dt_ids
[]
=
{
{
.
compatible
=
"marvell,a370db-audio"
},
{
},
};
static
struct
platform_driver
a370db_driver
=
{
.
driver
=
{
.
name
=
"a370db-audio"
,
.
owner
=
THIS_MODULE
,
.
of_match_table
=
of_match_ptr
(
a370db_dt_ids
),
},
.
probe
=
a370db_probe
,
};
module_platform_driver
(
a370db_driver
);
MODULE_AUTHOR
(
"Thomas Petazzoni <thomas.petazzoni@free-electrons.com>"
);
MODULE_DESCRIPTION
(
"ALSA SoC a370db audio client"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_ALIAS
(
"platform:a370db-audio"
);
sound/soc/kirkwood/kirkwood-i2s.c
View file @
5881af77
...
...
@@ -633,6 +633,7 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev)
static
struct
of_device_id
mvebu_audio_of_match
[]
=
{
{
.
compatible
=
"marvell,kirkwood-audio"
},
{
.
compatible
=
"marvell,dove-audio"
},
{
.
compatible
=
"marvell,armada370-audio"
},
{
}
};
MODULE_DEVICE_TABLE
(
of
,
mvebu_audio_of_match
);
...
...
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