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
84bf51ea
Commit
84bf51ea
authored
May 27, 2016
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-next
parents
a5a3717a
2213fc35
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
369 additions
and
84 deletions
+369
-84
sound/soc/codecs/Kconfig
sound/soc/codecs/Kconfig
+12
-1
sound/soc/codecs/Makefile
sound/soc/codecs/Makefile
+4
-0
sound/soc/codecs/tlv320aic32x4-i2c.c
sound/soc/codecs/tlv320aic32x4-i2c.c
+74
-0
sound/soc/codecs/tlv320aic32x4-spi.c
sound/soc/codecs/tlv320aic32x4-spi.c
+76
-0
sound/soc/codecs/tlv320aic32x4.c
sound/soc/codecs/tlv320aic32x4.c
+196
-83
sound/soc/codecs/tlv320aic32x4.h
sound/soc/codecs/tlv320aic32x4.h
+7
-0
No files found.
sound/soc/codecs/Kconfig
View file @
84bf51ea
...
...
@@ -131,7 +131,8 @@ config SND_SOC_ALL_CODECS
select SND_SOC_TLV320AIC23_SPI if SPI_MASTER
select SND_SOC_TLV320AIC26 if SPI_MASTER
select SND_SOC_TLV320AIC31XX if I2C
select SND_SOC_TLV320AIC32X4 if I2C
select SND_SOC_TLV320AIC32X4_I2C if I2C
select SND_SOC_TLV320AIC32X4_SPI if SPI_MASTER
select SND_SOC_TLV320AIC3X if I2C
select SND_SOC_TPA6130A2 if I2C
select SND_SOC_TLV320DAC33 if I2C
...
...
@@ -780,6 +781,16 @@ config SND_SOC_TLV320AIC31XX
config SND_SOC_TLV320AIC32X4
tristate
config SND_SOC_TLV320AIC32X4_I2C
tristate
depends on I2C
select SND_SOC_TLV320AIC32X4
config SND_SOC_TLV320AIC32X4_SPI
tristate
depends on SPI_MASTER
select SND_SOC_TLV320AIC32X4
config SND_SOC_TLV320AIC3X
tristate "Texas Instruments TLV320AIC3x CODECs"
depends on I2C
...
...
sound/soc/codecs/Makefile
View file @
84bf51ea
...
...
@@ -138,6 +138,8 @@ snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o
snd-soc-tlv320aic26-objs
:=
tlv320aic26.o
snd-soc-tlv320aic31xx-objs
:=
tlv320aic31xx.o
snd-soc-tlv320aic32x4-objs
:=
tlv320aic32x4.o
snd-soc-tlv320aic32x4-i2c-objs
:=
tlv320aic32x4-i2c.o
snd-soc-tlv320aic32x4-spi-objs
:=
tlv320aic32x4-spi.o
snd-soc-tlv320aic3x-objs
:=
tlv320aic3x.o
snd-soc-tlv320dac33-objs
:=
tlv320dac33.o
snd-soc-ts3a227e-objs
:=
ts3a227e.o
...
...
@@ -346,6 +348,8 @@ obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o
obj-$(CONFIG_SND_SOC_TLV320AIC26)
+=
snd-soc-tlv320aic26.o
obj-$(CONFIG_SND_SOC_TLV320AIC31XX)
+=
snd-soc-tlv320aic31xx.o
obj-$(CONFIG_SND_SOC_TLV320AIC32X4)
+=
snd-soc-tlv320aic32x4.o
obj-$(CONFIG_SND_SOC_TLV320AIC32X4_I2C)
+=
snd-soc-tlv320aic32x4-i2c.o
obj-$(CONFIG_SND_SOC_TLV320AIC32X4_SPI)
+=
snd-soc-tlv320aic32x4-spi.o
obj-$(CONFIG_SND_SOC_TLV320AIC3X)
+=
snd-soc-tlv320aic3x.o
obj-$(CONFIG_SND_SOC_TLV320DAC33)
+=
snd-soc-tlv320dac33.o
obj-$(CONFIG_SND_SOC_TS3A227E)
+=
snd-soc-ts3a227e.o
...
...
sound/soc/codecs/tlv320aic32x4-i2c.c
0 → 100644
View file @
84bf51ea
/*
* linux/sound/soc/codecs/tlv320aic32x4-i2c.c
*
* Copyright 2011 NW Digital Radio
*
* Author: Jeremy McDermond <nh6z@nh6z.net>
*
* Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27.
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include "tlv320aic32x4.h"
static
int
aic32x4_i2c_probe
(
struct
i2c_client
*
i2c
,
const
struct
i2c_device_id
*
id
)
{
struct
regmap
*
regmap
;
struct
regmap_config
config
;
config
=
aic32x4_regmap_config
;
config
.
reg_bits
=
8
;
config
.
val_bits
=
8
;
regmap
=
devm_regmap_init_i2c
(
i2c
,
&
config
);
return
aic32x4_probe
(
&
i2c
->
dev
,
regmap
);
}
static
int
aic32x4_i2c_remove
(
struct
i2c_client
*
i2c
)
{
return
aic32x4_remove
(
&
i2c
->
dev
);
}
static
const
struct
i2c_device_id
aic32x4_i2c_id
[]
=
{
{
"tlv320aic32x4"
,
0
},
{
/* sentinel */
}
};
MODULE_DEVICE_TABLE
(
i2c
,
aic32x4_i2c_id
);
static
const
struct
of_device_id
aic32x4_of_id
[]
=
{
{
.
compatible
=
"ti,tlv320aic32x4"
,
},
{
/* senitel */
}
};
MODULE_DEVICE_TABLE
(
of
,
aic32x4_of_id
);
static
struct
i2c_driver
aic32x4_i2c_driver
=
{
.
driver
=
{
.
name
=
"tlv320aic32x4"
,
.
of_match_table
=
aic32x4_of_id
,
},
.
probe
=
aic32x4_i2c_probe
,
.
remove
=
aic32x4_i2c_remove
,
.
id_table
=
aic32x4_i2c_id
,
};
module_i2c_driver
(
aic32x4_i2c_driver
);
MODULE_DESCRIPTION
(
"ASoC TLV320AIC32x4 codec driver I2C"
);
MODULE_AUTHOR
(
"Jeremy McDermond <nh6z@nh6z.net>"
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/codecs/tlv320aic32x4-spi.c
0 → 100644
View file @
84bf51ea
/*
* linux/sound/soc/codecs/tlv320aic32x4-spi.c
*
* Copyright 2011 NW Digital Radio
*
* Author: Jeremy McDermond <nh6z@nh6z.net>
*
* Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27.
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/spi/spi.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include "tlv320aic32x4.h"
static
int
aic32x4_spi_probe
(
struct
spi_device
*
spi
)
{
struct
regmap
*
regmap
;
struct
regmap_config
config
;
config
=
aic32x4_regmap_config
;
config
.
reg_bits
=
7
;
config
.
pad_bits
=
1
;
config
.
val_bits
=
8
;
config
.
read_flag_mask
=
0x01
;
regmap
=
devm_regmap_init_spi
(
spi
,
&
config
);
return
aic32x4_probe
(
&
spi
->
dev
,
regmap
);
}
static
int
aic32x4_spi_remove
(
struct
spi_device
*
spi
)
{
return
aic32x4_remove
(
&
spi
->
dev
);
}
static
const
struct
spi_device_id
aic32x4_spi_id
[]
=
{
{
"tlv320aic32x4"
,
0
},
{
/* sentinel */
}
};
MODULE_DEVICE_TABLE
(
spi
,
aic32x4_spi_id
);
static
const
struct
of_device_id
aic32x4_of_id
[]
=
{
{
.
compatible
=
"ti,tlv320aic32x4"
,
},
{
/* senitel */
}
};
MODULE_DEVICE_TABLE
(
of
,
aic32x4_of_id
);
static
struct
spi_driver
aic32x4_spi_driver
=
{
.
driver
=
{
.
name
=
"tlv320aic32x4"
,
.
owner
=
THIS_MODULE
,
.
of_match_table
=
aic32x4_of_id
,
},
.
probe
=
aic32x4_spi_probe
,
.
remove
=
aic32x4_spi_remove
,
.
id_table
=
aic32x4_spi_id
,
};
module_spi_driver
(
aic32x4_spi_driver
);
MODULE_DESCRIPTION
(
"ASoC TLV320AIC32x4 codec driver SPI"
);
MODULE_AUTHOR
(
"Jeremy McDermond <nh6z@nh6z.net>"
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/codecs/tlv320aic32x4.c
View file @
84bf51ea
This diff is collapsed.
Click to expand it.
sound/soc/codecs/tlv320aic32x4.h
View file @
84bf51ea
...
...
@@ -10,6 +10,13 @@
#ifndef _TLV320AIC32X4_H
#define _TLV320AIC32X4_H
struct
device
;
struct
regmap_config
;
extern
const
struct
regmap_config
aic32x4_regmap_config
;
int
aic32x4_probe
(
struct
device
*
dev
,
struct
regmap
*
regmap
);
int
aic32x4_remove
(
struct
device
*
dev
);
/* tlv320aic32x4 register space (in decimal to match datasheet) */
#define AIC32X4_PAGE1 128
...
...
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