ASoC: rt5668: add rt5668B codec driver
This is the initial codec driver for rt5668b. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
29bc643ddd
commit
d59fb28562
50
Documentation/devicetree/bindings/sound/rt5668.txt
Normal file
50
Documentation/devicetree/bindings/sound/rt5668.txt
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
RT5668B audio CODEC
|
||||||
|
|
||||||
|
This device supports I2C only.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
|
||||||
|
- compatible : "realtek,rt5668b"
|
||||||
|
|
||||||
|
- reg : The I2C address of the device.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
|
||||||
|
- interrupts : The CODEC's interrupt output.
|
||||||
|
|
||||||
|
- realtek,dmic1-data-pin
|
||||||
|
0: dmic1 is not used
|
||||||
|
1: using GPIO2 pin as dmic1 data pin
|
||||||
|
2: using GPIO5 pin as dmic1 data pin
|
||||||
|
|
||||||
|
- realtek,dmic1-clk-pin
|
||||||
|
0: using GPIO1 pin as dmic1 clock pin
|
||||||
|
1: using GPIO3 pin as dmic1 clock pin
|
||||||
|
|
||||||
|
- realtek,jd-src
|
||||||
|
0: No JD is used
|
||||||
|
1: using JD1 as JD source
|
||||||
|
|
||||||
|
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
|
||||||
|
|
||||||
|
Pins on the device (for linking into audio routes) for RT5668B:
|
||||||
|
|
||||||
|
* DMIC L1
|
||||||
|
* DMIC R1
|
||||||
|
* IN1P
|
||||||
|
* HPOL
|
||||||
|
* HPOR
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
rt5668 {
|
||||||
|
compatible = "realtek,rt5668b";
|
||||||
|
reg = <0x1a>;
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(U, 6) GPIO_ACTIVE_HIGH>;
|
||||||
|
realtek,ldo1-en-gpios =
|
||||||
|
<&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_HIGH>;
|
||||||
|
realtek,dmic1-data-pin = <1>;
|
||||||
|
realtek,dmic1-clk-pin = <1>;
|
||||||
|
realtek,jd-src = <1>;
|
||||||
|
};
|
40
include/sound/rt5668.h
Normal file
40
include/sound/rt5668.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* linux/sound/rt5668.h -- Platform data for RT5668
|
||||||
|
*
|
||||||
|
* Copyright 2018 Realtek Microelectronics
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __LINUX_SND_RT5668_H
|
||||||
|
#define __LINUX_SND_RT5668_H
|
||||||
|
|
||||||
|
enum rt5668_dmic1_data_pin {
|
||||||
|
RT5668_DMIC1_NULL,
|
||||||
|
RT5668_DMIC1_DATA_GPIO2,
|
||||||
|
RT5668_DMIC1_DATA_GPIO5,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rt5668_dmic1_clk_pin {
|
||||||
|
RT5668_DMIC1_CLK_GPIO1,
|
||||||
|
RT5668_DMIC1_CLK_GPIO3,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rt5668_jd_src {
|
||||||
|
RT5668_JD_NULL,
|
||||||
|
RT5668_JD1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct rt5668_platform_data {
|
||||||
|
|
||||||
|
int ldo1_en; /* GPIO for LDO1_EN */
|
||||||
|
|
||||||
|
enum rt5668_dmic1_data_pin dmic1_data_pin;
|
||||||
|
enum rt5668_dmic1_clk_pin dmic1_clk_pin;
|
||||||
|
enum rt5668_jd_src jd_src;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -137,6 +137,7 @@ config SND_SOC_ALL_CODECS
|
|||||||
select SND_SOC_RT5660 if I2C
|
select SND_SOC_RT5660 if I2C
|
||||||
select SND_SOC_RT5663 if I2C
|
select SND_SOC_RT5663 if I2C
|
||||||
select SND_SOC_RT5665 if I2C
|
select SND_SOC_RT5665 if I2C
|
||||||
|
select SND_SOC_RT5668 if I2C
|
||||||
select SND_SOC_RT5670 if I2C
|
select SND_SOC_RT5670 if I2C
|
||||||
select SND_SOC_RT5677 if I2C && SPI_MASTER
|
select SND_SOC_RT5677 if I2C && SPI_MASTER
|
||||||
select SND_SOC_SGTL5000 if I2C
|
select SND_SOC_SGTL5000 if I2C
|
||||||
@ -771,6 +772,7 @@ config SND_SOC_RL6231
|
|||||||
default y if SND_SOC_RT5660=y
|
default y if SND_SOC_RT5660=y
|
||||||
default y if SND_SOC_RT5663=y
|
default y if SND_SOC_RT5663=y
|
||||||
default y if SND_SOC_RT5665=y
|
default y if SND_SOC_RT5665=y
|
||||||
|
default y if SND_SOC_RT5668=y
|
||||||
default y if SND_SOC_RT5670=y
|
default y if SND_SOC_RT5670=y
|
||||||
default y if SND_SOC_RT5677=y
|
default y if SND_SOC_RT5677=y
|
||||||
default y if SND_SOC_RT1305=y
|
default y if SND_SOC_RT1305=y
|
||||||
@ -783,6 +785,7 @@ config SND_SOC_RL6231
|
|||||||
default m if SND_SOC_RT5660=m
|
default m if SND_SOC_RT5660=m
|
||||||
default m if SND_SOC_RT5663=m
|
default m if SND_SOC_RT5663=m
|
||||||
default m if SND_SOC_RT5665=m
|
default m if SND_SOC_RT5665=m
|
||||||
|
default m if SND_SOC_RT5668=m
|
||||||
default m if SND_SOC_RT5670=m
|
default m if SND_SOC_RT5670=m
|
||||||
default m if SND_SOC_RT5677=m
|
default m if SND_SOC_RT5677=m
|
||||||
default m if SND_SOC_RT1305=m
|
default m if SND_SOC_RT1305=m
|
||||||
@ -850,6 +853,9 @@ config SND_SOC_RT5663
|
|||||||
config SND_SOC_RT5665
|
config SND_SOC_RT5665
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
|
config SND_SOC_RT5668
|
||||||
|
tristate
|
||||||
|
|
||||||
config SND_SOC_RT5670
|
config SND_SOC_RT5670
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
|
@ -141,6 +141,7 @@ snd-soc-rt5659-objs := rt5659.o
|
|||||||
snd-soc-rt5660-objs := rt5660.o
|
snd-soc-rt5660-objs := rt5660.o
|
||||||
snd-soc-rt5663-objs := rt5663.o
|
snd-soc-rt5663-objs := rt5663.o
|
||||||
snd-soc-rt5665-objs := rt5665.o
|
snd-soc-rt5665-objs := rt5665.o
|
||||||
|
snd-soc-rt5668-objs := rt5668.o
|
||||||
snd-soc-rt5670-objs := rt5670.o
|
snd-soc-rt5670-objs := rt5670.o
|
||||||
snd-soc-rt5677-objs := rt5677.o
|
snd-soc-rt5677-objs := rt5677.o
|
||||||
snd-soc-rt5677-spi-objs := rt5677-spi.o
|
snd-soc-rt5677-spi-objs := rt5677-spi.o
|
||||||
@ -396,6 +397,7 @@ obj-$(CONFIG_SND_SOC_RT5659) += snd-soc-rt5659.o
|
|||||||
obj-$(CONFIG_SND_SOC_RT5660) += snd-soc-rt5660.o
|
obj-$(CONFIG_SND_SOC_RT5660) += snd-soc-rt5660.o
|
||||||
obj-$(CONFIG_SND_SOC_RT5663) += snd-soc-rt5663.o
|
obj-$(CONFIG_SND_SOC_RT5663) += snd-soc-rt5663.o
|
||||||
obj-$(CONFIG_SND_SOC_RT5665) += snd-soc-rt5665.o
|
obj-$(CONFIG_SND_SOC_RT5665) += snd-soc-rt5665.o
|
||||||
|
obj-$(CONFIG_SND_SOC_RT5668) += snd-soc-rt5668.o
|
||||||
obj-$(CONFIG_SND_SOC_RT5670) += snd-soc-rt5670.o
|
obj-$(CONFIG_SND_SOC_RT5670) += snd-soc-rt5670.o
|
||||||
obj-$(CONFIG_SND_SOC_RT5677) += snd-soc-rt5677.o
|
obj-$(CONFIG_SND_SOC_RT5677) += snd-soc-rt5677.o
|
||||||
obj-$(CONFIG_SND_SOC_RT5677_SPI) += snd-soc-rt5677-spi.o
|
obj-$(CONFIG_SND_SOC_RT5677_SPI) += snd-soc-rt5677-spi.o
|
||||||
|
2639
sound/soc/codecs/rt5668.c
Normal file
2639
sound/soc/codecs/rt5668.c
Normal file
File diff suppressed because it is too large
Load Diff
1318
sound/soc/codecs/rt5668.h
Normal file
1318
sound/soc/codecs/rt5668.h
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user