diff options
author | Mark Brown <broonie@kernel.org> | 2018-08-09 14:47:05 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-08-09 14:47:05 +0100 |
commit | 4aa5db22d35588e1a5d2ee88472348ea73d9fb23 (patch) | |
tree | 67c98488983a71305e24940930d6e27a96d54db2 /sound/soc/meson/axg-tdm-formatter.h | |
parent | 6c084839877666d987ff8bc4e0facd3c02d99d61 (diff) | |
parent | f2cf0ef7c0ce141bb38f315c34c56e6ef5667a27 (diff) |
Merge branch 'asoc-4.19' into asoc-next
Diffstat (limited to 'sound/soc/meson/axg-tdm-formatter.h')
-rw-r--r-- | sound/soc/meson/axg-tdm-formatter.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sound/soc/meson/axg-tdm-formatter.h b/sound/soc/meson/axg-tdm-formatter.h new file mode 100644 index 000000000000..cf947caf3cb1 --- /dev/null +++ b/sound/soc/meson/axg-tdm-formatter.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) + * + * Copyright (c) 2018 Baylibre SAS. + * Author: Jerome Brunet <jbrunet@baylibre.com> + */ + +#ifndef _MESON_AXG_TDM_FORMATTER_H +#define _MESON_AXG_TDM_FORMATTER_H + +#include "axg-tdm.h" + +struct platform_device; +struct regmap; +struct snd_soc_dapm_widget; +struct snd_kcontrol; + +struct axg_tdm_formatter_ops { + struct axg_tdm_stream *(*get_stream)(struct snd_soc_dapm_widget *w); + void (*enable)(struct regmap *map); + void (*disable)(struct regmap *map); + int (*prepare)(struct regmap *map, struct axg_tdm_stream *ts); +}; + +struct axg_tdm_formatter_driver { + const struct snd_soc_component_driver *component_drv; + const struct regmap_config *regmap_cfg; + const struct axg_tdm_formatter_ops *ops; + bool invert_sclk; +}; + +int axg_tdm_formatter_set_channel_masks(struct regmap *map, + struct axg_tdm_stream *ts, + unsigned int offset); +int axg_tdm_formatter_event(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *control, + int event); +int axg_tdm_formatter_probe(struct platform_device *pdev); + +#endif /* _MESON_AXG_TDM_FORMATTER_H */ |