mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
d90ba6c8b5
For the purposes of platforms which use the codec as DAI clock master for the CPU and other codec devices, there is the need to not only expose the clock gating of BCLK and WCLK but also the ability to set those rates without going through the ASoC APIs. To make this possible, the previous CCF implementation in the driver has been extended to separate BCLK and WCLK out. WCLK is the parent clock to BCLK, and is also the clock gate for both. BCLK in HW is a factor/multiplier of WCLK so derives from whatever SR is chosen for WCLK, hence the need to make it a child of WCLK for the purposes of CCF. Enabling/disabling either BCLK or WCLK will result in clocks being ungated/gated accordingly. To simplify matters, these clocks can only be configured if the codec is set as master, otherwise CCF control is disallowed. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
56 lines
1.2 KiB
C
56 lines
1.2 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;
|
|
|
|
enum da7219_dai_clks {
|
|
DA7219_DAI_WCLK_IDX = 0,
|
|
DA7219_DAI_BCLK_IDX,
|
|
DA7219_DAI_NUM_CLKS,
|
|
};
|
|
|
|
struct da7219_pdata {
|
|
bool wakeup_source;
|
|
|
|
const char *dai_clk_names[DA7219_DAI_NUM_CLKS];
|
|
|
|
/* 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 */
|