forked from Minki/linux
ASoC: mediatek: Refine mt8173 driver and change config option
move mt8173 driver to another folder and add prefix. add config option SND_SOC_MT8173 Signed-off-by: Garlic Tseng <garlic.tseng@mediatek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
0c198ed2ba
commit
0d1d7a6642
@ -1,15 +1,15 @@
|
||||
config SND_SOC_MEDIATEK
|
||||
tristate "ASoC support for Mediatek chip"
|
||||
config SND_SOC_MT8173
|
||||
tristate "ASoC support for Mediatek MT8173 chip"
|
||||
depends on ARCH_MEDIATEK
|
||||
help
|
||||
This adds ASoC platform driver support for Mediatek chip
|
||||
This adds ASoC platform driver support for Mediatek MT8173 chip
|
||||
that can be used with other codecs.
|
||||
Select Y if you have such device.
|
||||
Ex: MT8173
|
||||
|
||||
config SND_SOC_MT8173_MAX98090
|
||||
tristate "ASoC Audio driver for MT8173 with MAX98090 codec"
|
||||
depends on SND_SOC_MEDIATEK && I2C
|
||||
depends on SND_SOC_MT8173 && I2C
|
||||
select SND_SOC_MAX98090
|
||||
help
|
||||
This adds ASoC driver for Mediatek MT8173 boards
|
||||
@ -19,7 +19,7 @@ config SND_SOC_MT8173_MAX98090
|
||||
|
||||
config SND_SOC_MT8173_RT5650
|
||||
tristate "ASoC Audio driver for MT8173 with RT5650 codec"
|
||||
depends on SND_SOC_MEDIATEK && I2C
|
||||
depends on SND_SOC_MT8173 && I2C
|
||||
select SND_SOC_RT5645
|
||||
help
|
||||
This adds ASoC driver for Mediatek MT8173 boards
|
||||
@ -29,7 +29,7 @@ config SND_SOC_MT8173_RT5650
|
||||
|
||||
config SND_SOC_MT8173_RT5650_RT5514
|
||||
tristate "ASoC Audio driver for MT8173 with RT5650 RT5514 codecs"
|
||||
depends on SND_SOC_MEDIATEK && I2C
|
||||
depends on SND_SOC_MT8173 && I2C
|
||||
select SND_SOC_RT5645
|
||||
select SND_SOC_RT5514
|
||||
help
|
||||
@ -40,7 +40,7 @@ config SND_SOC_MT8173_RT5650_RT5514
|
||||
|
||||
config SND_SOC_MT8173_RT5650_RT5676
|
||||
tristate "ASoC Audio driver for MT8173 with RT5650 RT5676 codecs"
|
||||
depends on SND_SOC_MEDIATEK && I2C
|
||||
depends on SND_SOC_MT8173 && I2C
|
||||
select SND_SOC_RT5645
|
||||
select SND_SOC_RT5677
|
||||
select SND_SOC_HDMI_CODEC
|
||||
|
@ -1,7 +1,2 @@
|
||||
# MTK Platform Support
|
||||
obj-$(CONFIG_SND_SOC_MEDIATEK) += mtk-afe-pcm.o
|
||||
# Machine support
|
||||
obj-$(CONFIG_SND_SOC_MT8173_MAX98090) += mt8173-max98090.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650) += mt8173-rt5650.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650_RT5514) += mt8173-rt5650-rt5514.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650_RT5676) += mt8173-rt5650-rt5676.o
|
||||
# 8173 Machine support
|
||||
obj-$(CONFIG_SND_SOC_MT8173) += mt8173/
|
||||
|
7
sound/soc/mediatek/mt8173/Makefile
Normal file
7
sound/soc/mediatek/mt8173/Makefile
Normal file
@ -0,0 +1,7 @@
|
||||
# MTK Platform Support
|
||||
obj-$(CONFIG_SND_SOC_MT8173) += mt8173-afe-pcm.o
|
||||
# Machine support
|
||||
obj-$(CONFIG_SND_SOC_MT8173_MAX98090) += mt8173-max98090.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650) += mt8173-rt5650.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650_RT5514) += mt8173-rt5650-rt5514.o
|
||||
obj-$(CONFIG_SND_SOC_MT8173_RT5650_RT5676) += mt8173-rt5650-rt5676.o
|
101
sound/soc/mediatek/mt8173/mt8173-afe-common.h
Normal file
101
sound/soc/mediatek/mt8173/mt8173-afe-common.h
Normal file
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* mt8173_afe_common.h -- Mediatek 8173 audio driver common definitions
|
||||
*
|
||||
* Copyright (c) 2015 MediaTek Inc.
|
||||
* Author: Koro Chen <koro.chen@mediatek.com>
|
||||
* Sascha Hauer <s.hauer@pengutronix.de>
|
||||
* Hidalgo Huang <hidalgo.huang@mediatek.com>
|
||||
* Ir Lian <ir.lian@mediatek.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 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _MT8173_AFE_COMMON_H_
|
||||
#define _MT8173_AFE_COMMON_H_
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
enum {
|
||||
MT8173_AFE_MEMIF_DL1,
|
||||
MT8173_AFE_MEMIF_DL2,
|
||||
MT8173_AFE_MEMIF_VUL,
|
||||
MT8173_AFE_MEMIF_DAI,
|
||||
MT8173_AFE_MEMIF_AWB,
|
||||
MT8173_AFE_MEMIF_MOD_DAI,
|
||||
MT8173_AFE_MEMIF_HDMI,
|
||||
MT8173_AFE_MEMIF_NUM,
|
||||
MT8173_AFE_IO_MOD_PCM1 = MT8173_AFE_MEMIF_NUM,
|
||||
MT8173_AFE_IO_MOD_PCM2,
|
||||
MT8173_AFE_IO_PMIC,
|
||||
MT8173_AFE_IO_I2S,
|
||||
MT8173_AFE_IO_2ND_I2S,
|
||||
MT8173_AFE_IO_HW_GAIN1,
|
||||
MT8173_AFE_IO_HW_GAIN2,
|
||||
MT8173_AFE_IO_MRG_O,
|
||||
MT8173_AFE_IO_MRG_I,
|
||||
MT8173_AFE_IO_DAIBT,
|
||||
MT8173_AFE_IO_HDMI,
|
||||
};
|
||||
|
||||
enum {
|
||||
MT8173_AFE_IRQ_1,
|
||||
MT8173_AFE_IRQ_2,
|
||||
MT8173_AFE_IRQ_3,
|
||||
MT8173_AFE_IRQ_4,
|
||||
MT8173_AFE_IRQ_5,
|
||||
MT8173_AFE_IRQ_6,
|
||||
MT8173_AFE_IRQ_7,
|
||||
MT8173_AFE_IRQ_8,
|
||||
MT8173_AFE_IRQ_NUM,
|
||||
};
|
||||
|
||||
enum {
|
||||
MT8173_CLK_INFRASYS_AUD,
|
||||
MT8173_CLK_TOP_PDN_AUD,
|
||||
MT8173_CLK_TOP_PDN_AUD_BUS,
|
||||
MT8173_CLK_I2S0_M,
|
||||
MT8173_CLK_I2S1_M,
|
||||
MT8173_CLK_I2S2_M,
|
||||
MT8173_CLK_I2S3_M,
|
||||
MT8173_CLK_I2S3_B,
|
||||
MT8173_CLK_BCK0,
|
||||
MT8173_CLK_BCK1,
|
||||
MT8173_CLK_NUM
|
||||
};
|
||||
|
||||
struct mt8173_afe;
|
||||
struct snd_pcm_substream;
|
||||
|
||||
struct mt8173_afe_memif_data {
|
||||
int id;
|
||||
const char *name;
|
||||
int reg_ofs_base;
|
||||
int reg_ofs_cur;
|
||||
int fs_shift;
|
||||
int mono_shift;
|
||||
int enable_shift;
|
||||
int irq_reg_cnt;
|
||||
int irq_cnt_shift;
|
||||
int irq_en_shift;
|
||||
int irq_fs_shift;
|
||||
int irq_clr_shift;
|
||||
int msb_shift;
|
||||
};
|
||||
|
||||
struct mt8173_afe_memif {
|
||||
unsigned int phys_buf_addr;
|
||||
int buffer_size;
|
||||
struct snd_pcm_substream *substream;
|
||||
const struct mt8173_afe_memif_data *data;
|
||||
const struct mt8173_afe_irq_data *irqdata;
|
||||
};
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -18,7 +18,7 @@
|
||||
#include <sound/soc.h>
|
||||
#include <sound/jack.h>
|
||||
#include <linux/gpio.h>
|
||||
#include "../codecs/max98090.h"
|
||||
#include "../../codecs/max98090.h"
|
||||
|
||||
static struct snd_soc_jack mt8173_max98090_jack;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <linux/of_gpio.h>
|
||||
#include <sound/soc.h>
|
||||
#include <sound/jack.h>
|
||||
#include "../codecs/rt5645.h"
|
||||
#include "../../codecs/rt5645.h"
|
||||
|
||||
#define MCLK_FOR_CODECS 12288000
|
||||
|
@ -19,8 +19,8 @@
|
||||
#include <linux/of_gpio.h>
|
||||
#include <sound/soc.h>
|
||||
#include <sound/jack.h>
|
||||
#include "../codecs/rt5645.h"
|
||||
#include "../codecs/rt5677.h"
|
||||
#include "../../codecs/rt5645.h"
|
||||
#include "../../codecs/rt5677.h"
|
||||
|
||||
#define MCLK_FOR_CODECS 12288000
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <linux/of_gpio.h>
|
||||
#include <sound/soc.h>
|
||||
#include <sound/jack.h>
|
||||
#include "../codecs/rt5645.h"
|
||||
#include "../../codecs/rt5645.h"
|
||||
|
||||
#define MCLK_FOR_CODECS 12288000
|
||||
|
@ -1,101 +0,0 @@
|
||||
/*
|
||||
* mtk_afe_common.h -- Mediatek audio driver common definitions
|
||||
*
|
||||
* Copyright (c) 2015 MediaTek Inc.
|
||||
* Author: Koro Chen <koro.chen@mediatek.com>
|
||||
* Sascha Hauer <s.hauer@pengutronix.de>
|
||||
* Hidalgo Huang <hidalgo.huang@mediatek.com>
|
||||
* Ir Lian <ir.lian@mediatek.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 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _MTK_AFE_COMMON_H_
|
||||
#define _MTK_AFE_COMMON_H_
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
enum {
|
||||
MTK_AFE_MEMIF_DL1,
|
||||
MTK_AFE_MEMIF_DL2,
|
||||
MTK_AFE_MEMIF_VUL,
|
||||
MTK_AFE_MEMIF_DAI,
|
||||
MTK_AFE_MEMIF_AWB,
|
||||
MTK_AFE_MEMIF_MOD_DAI,
|
||||
MTK_AFE_MEMIF_HDMI,
|
||||
MTK_AFE_MEMIF_NUM,
|
||||
MTK_AFE_IO_MOD_PCM1 = MTK_AFE_MEMIF_NUM,
|
||||
MTK_AFE_IO_MOD_PCM2,
|
||||
MTK_AFE_IO_PMIC,
|
||||
MTK_AFE_IO_I2S,
|
||||
MTK_AFE_IO_2ND_I2S,
|
||||
MTK_AFE_IO_HW_GAIN1,
|
||||
MTK_AFE_IO_HW_GAIN2,
|
||||
MTK_AFE_IO_MRG_O,
|
||||
MTK_AFE_IO_MRG_I,
|
||||
MTK_AFE_IO_DAIBT,
|
||||
MTK_AFE_IO_HDMI,
|
||||
};
|
||||
|
||||
enum {
|
||||
MTK_AFE_IRQ_1,
|
||||
MTK_AFE_IRQ_2,
|
||||
MTK_AFE_IRQ_3,
|
||||
MTK_AFE_IRQ_4,
|
||||
MTK_AFE_IRQ_5,
|
||||
MTK_AFE_IRQ_6,
|
||||
MTK_AFE_IRQ_7,
|
||||
MTK_AFE_IRQ_8,
|
||||
MTK_AFE_IRQ_NUM,
|
||||
};
|
||||
|
||||
enum {
|
||||
MTK_CLK_INFRASYS_AUD,
|
||||
MTK_CLK_TOP_PDN_AUD,
|
||||
MTK_CLK_TOP_PDN_AUD_BUS,
|
||||
MTK_CLK_I2S0_M,
|
||||
MTK_CLK_I2S1_M,
|
||||
MTK_CLK_I2S2_M,
|
||||
MTK_CLK_I2S3_M,
|
||||
MTK_CLK_I2S3_B,
|
||||
MTK_CLK_BCK0,
|
||||
MTK_CLK_BCK1,
|
||||
MTK_CLK_NUM
|
||||
};
|
||||
|
||||
struct mtk_afe;
|
||||
struct snd_pcm_substream;
|
||||
|
||||
struct mtk_afe_memif_data {
|
||||
int id;
|
||||
const char *name;
|
||||
int reg_ofs_base;
|
||||
int reg_ofs_cur;
|
||||
int fs_shift;
|
||||
int mono_shift;
|
||||
int enable_shift;
|
||||
int irq_reg_cnt;
|
||||
int irq_cnt_shift;
|
||||
int irq_en_shift;
|
||||
int irq_fs_shift;
|
||||
int irq_clr_shift;
|
||||
int msb_shift;
|
||||
};
|
||||
|
||||
struct mtk_afe_memif {
|
||||
unsigned int phys_buf_addr;
|
||||
int buffer_size;
|
||||
struct snd_pcm_substream *substream;
|
||||
const struct mtk_afe_memif_data *data;
|
||||
const struct mtk_afe_irq_data *irqdata;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user