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
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
Hide 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