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