aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/amd/vangogh/acp5x.h
diff options
context:
space:
mode:
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>2021-07-21 23:34:25 +0530
committerMark Brown <broonie@kernel.org>2021-07-22 12:45:41 +0100
commitb80556addd1a0db551a0c82fb9651e502ac0119b (patch)
tree858dada858ad85778fa71b208fe9825f0c170704 /sound/soc/amd/vangogh/acp5x.h
parentASoC: amd: add vangogh i2s controller driver (diff)
downloadlinux-dev-b80556addd1a0db551a0c82fb9651e502ac0119b.tar.xz
linux-dev-b80556addd1a0db551a0c82fb9651e502ac0119b.zip
ASoC: amd: add vangogh i2s dai driver ops
Add Vangogh i2s dai driver ops. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20210721180430.11571-10-Vijendar.Mukunda@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to '')
-rw-r--r--sound/soc/amd/vangogh/acp5x.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/sound/soc/amd/vangogh/acp5x.h b/sound/soc/amd/vangogh/acp5x.h
index 3238c1154053..a808635f9740 100644
--- a/sound/soc/amd/vangogh/acp5x.h
+++ b/sound/soc/amd/vangogh/acp5x.h
@@ -74,9 +74,20 @@
#define I2S_MASTER_MODE_ENABLE 1
#define I2S_MASTER_MODE_DISABLE 0
+#define SLOT_WIDTH_8 8
+#define SLOT_WIDTH_16 16
+#define SLOT_WIDTH_24 24
+#define SLOT_WIDTH_32 32
+#define TDM_ENABLE 1
+#define TDM_DISABLE 0
+#define ACP5x_ITER_IRER_SAMP_LEN_MASK 0x38
+
struct i2s_dev_data {
+ bool tdm_mode;
bool master_mode;
unsigned int i2s_irq;
+ u16 i2s_instance;
+ u32 tdm_fmt;
void __iomem *acp5x_base;
struct snd_pcm_substream *play_stream;
struct snd_pcm_substream *capture_stream;
@@ -109,6 +120,17 @@ struct acp5x_platform_info {
u16 cap_i2s_instance;
};
+union acp_i2stdm_mstrclkgen {
+ struct {
+ u32 i2stdm_master_mode : 1;
+ u32 i2stdm_format_mode : 1;
+ u32 i2stdm_lrclk_div_val : 9;
+ u32 i2stdm_bclk_div_val : 11;
+ u32:10;
+ } bitfields, bits;
+ u32 u32_all;
+};
+
/* common header file uses exact offset rather than relative
* offset which requires subtraction logic from base_addr
* for accessing ACP5x MMIO space registers