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
e7dfdc1f
Commit
e7dfdc1f
authored
Aug 22, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/ak4554' into asoc-next
parents
de2e87ba
4601736a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
122 additions
and
0 deletions
+122
-0
Documentation/devicetree/bindings/sound/ak4554.c
Documentation/devicetree/bindings/sound/ak4554.c
+11
-0
sound/soc/codecs/Kconfig
sound/soc/codecs/Kconfig
+3
-0
sound/soc/codecs/Makefile
sound/soc/codecs/Makefile
+2
-0
sound/soc/codecs/ak4554.c
sound/soc/codecs/ak4554.c
+106
-0
No files found.
Documentation/devicetree/bindings/sound/ak4554.c
0 → 100644
View file @
e7dfdc1f
AK4554
ADC
/
DAC
Required
properties
:
-
compatible
:
"asahi-kasei,ak4554"
Example
:
ak4554
-
adc
-
dac
{
compatible
=
"asahi-kasei,ak4554"
;
};
sound/soc/codecs/Kconfig
View file @
e7dfdc1f
...
...
@@ -199,6 +199,9 @@ config SND_SOC_AK4104
config SND_SOC_AK4535
tristate
config SND_SOC_AK4554
tristate
config SND_SOC_AK4641
tristate
...
...
sound/soc/codecs/Makefile
View file @
e7dfdc1f
...
...
@@ -11,6 +11,7 @@ snd-soc-adav80x-objs := adav80x.o
snd-soc-ads117x-objs
:=
ads117x.o
snd-soc-ak4104-objs
:=
ak4104.o
snd-soc-ak4535-objs
:=
ak4535.o
snd-soc-ak4554-objs
:=
ak4554.o
snd-soc-ak4641-objs
:=
ak4641.o
snd-soc-ak4642-objs
:=
ak4642.o
snd-soc-ak4671-objs
:=
ak4671.o
...
...
@@ -138,6 +139,7 @@ obj-$(CONFIG_SND_SOC_ADAV80X) += snd-soc-adav80x.o
obj-$(CONFIG_SND_SOC_ADS117X)
+=
snd-soc-ads117x.o
obj-$(CONFIG_SND_SOC_AK4104)
+=
snd-soc-ak4104.o
obj-$(CONFIG_SND_SOC_AK4535)
+=
snd-soc-ak4535.o
obj-$(CONFIG_SND_SOC_AK4554)
+=
snd-soc-ak4554.o
obj-$(CONFIG_SND_SOC_AK4641)
+=
snd-soc-ak4641.o
obj-$(CONFIG_SND_SOC_AK4642)
+=
snd-soc-ak4642.o
obj-$(CONFIG_SND_SOC_AK4671)
+=
snd-soc-ak4671.o
...
...
sound/soc/codecs/ak4554.c
0 → 100644
View file @
e7dfdc1f
/*
* ak4554.c
*
* Copyright (C) 2013 Renesas Solutions Corp.
* Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <sound/soc.h>
/*
* ak4554 is very simple DA/AD converter which has no setting register.
*
* CAUTION
*
* ak4554 playback format is SND_SOC_DAIFMT_RIGHT_J,
* and, capture format is SND_SOC_DAIFMT_LEFT_J
* on same bit clock, LR clock.
* But, this driver doesn't have snd_soc_dai_ops :: set_fmt
*
* CPU/Codec DAI image
*
* CPU-DAI1 (plaback only fmt = RIGHT_J) --+-- ak4554
* |
* CPU-DAI2 (capture only fmt = LEFT_J) ---+
*/
static
const
struct
snd_soc_dapm_widget
ak4554_dapm_widgets
[]
=
{
SND_SOC_DAPM_INPUT
(
"AINL"
),
SND_SOC_DAPM_INPUT
(
"AINR"
),
SND_SOC_DAPM_OUTPUT
(
"AOUTL"
),
SND_SOC_DAPM_OUTPUT
(
"AOUTR"
),
};
static
const
struct
snd_soc_dapm_route
ak4554_dapm_routes
[]
=
{
{
"Capture"
,
NULL
,
"AINL"
},
{
"Capture"
,
NULL
,
"AINR"
},
{
"AOUTL"
,
NULL
,
"Playback"
},
{
"AOUTR"
,
NULL
,
"Playback"
},
};
static
struct
snd_soc_dai_driver
ak4554_dai
=
{
.
name
=
"ak4554-hifi"
,
.
playback
=
{
.
stream_name
=
"Playback"
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
rates
=
SNDRV_PCM_RATE_8000_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
.
capture
=
{
.
stream_name
=
"Capture"
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
rates
=
SNDRV_PCM_RATE_8000_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
.
symmetric_rates
=
1
,
};
static
struct
snd_soc_codec_driver
soc_codec_dev_ak4554
=
{
.
dapm_widgets
=
ak4554_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
ak4554_dapm_widgets
),
.
dapm_routes
=
ak4554_dapm_routes
,
.
num_dapm_routes
=
ARRAY_SIZE
(
ak4554_dapm_routes
),
};
static
int
ak4554_soc_probe
(
struct
platform_device
*
pdev
)
{
return
snd_soc_register_codec
(
&
pdev
->
dev
,
&
soc_codec_dev_ak4554
,
&
ak4554_dai
,
1
);
}
static
int
ak4554_soc_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_codec
(
&
pdev
->
dev
);
return
0
;
}
static
struct
of_device_id
ak4554_of_match
[]
=
{
{
.
compatible
=
"asahi-kasei,ak4554"
},
{},
};
MODULE_DEVICE_TABLE
(
of
,
ak4554_of_match
);
static
struct
platform_driver
ak4554_driver
=
{
.
driver
=
{
.
name
=
"ak4554-adc-dac"
,
.
owner
=
THIS_MODULE
,
.
of_match_table
=
ak4554_of_match
,
},
.
probe
=
ak4554_soc_probe
,
.
remove
=
ak4554_soc_remove
,
};
module_platform_driver
(
ak4554_driver
);
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"SoC AK4554 driver"
);
MODULE_AUTHOR
(
"Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>"
);
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