linux/include/sound/da7219.h
Adam Thomson fc8f7ea2d6
ASoC: da7219: Add common clock usage for providing DAI clks
There is a need to use DA7219 as DAI clock master for other codecs
within a system, which means that the DAI clocks are required to
remain, regardless of whether the codec is actually running
playback/capture. To be able to expose control of the DAI clocking
the common clock framework has been employed.

The current implementation adds a simple clock gate for enabling
and disabling the DAI clocks, with no rate control supported
(this is still handled through standard hw_params() functions as
before). If DT is enabled then the clock is added to the OF
providers list, otherwise a clkdev lookup is used.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2018-03-09 17:40:41 +00:00

50 lines
1.1 KiB
C

/*
* da7219.h - DA7219 ASoC Codec Driver Platform Data
*
* Copyright (c) 2015 Dialog Semiconductor
*
* Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
*
* 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.
*/
#ifndef __DA7219_PDATA_H
#define __DA7219_PDATA_H
/* Mic Bias */
enum da7219_micbias_voltage {
DA7219_MICBIAS_1_6V = 0,
DA7219_MICBIAS_1_8V,
DA7219_MICBIAS_2_0V,
DA7219_MICBIAS_2_2V,
DA7219_MICBIAS_2_4V,
DA7219_MICBIAS_2_6V,
};
/* Mic input type */
enum da7219_mic_amp_in_sel {
DA7219_MIC_AMP_IN_SEL_DIFF = 0,
DA7219_MIC_AMP_IN_SEL_SE_P,
DA7219_MIC_AMP_IN_SEL_SE_N,
};
struct da7219_aad_pdata;
struct da7219_pdata {
bool wakeup_source;
const char *dai_clks_name;
/* Mic */
enum da7219_micbias_voltage micbias_lvl;
enum da7219_mic_amp_in_sel mic_amp_in_sel;
/* AAD */
struct da7219_aad_pdata *aad_pdata;
};
#endif /* __DA7219_PDATA_H */