brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · a1f0dcc Raw
46 lines · c
1/* SPDX-License-Identifier: (GPL-2.0 OR MIT)2 *3 * Copyright (c) 2018 Baylibre SAS.4 * Author: Jerome Brunet <jbrunet@baylibre.com>5 */6 7#ifndef _MESON_AXG_TDM_FORMATTER_H8#define _MESON_AXG_TDM_FORMATTER_H9 10#include "axg-tdm.h"11 12struct platform_device;13struct regmap;14struct snd_soc_dapm_widget;15struct snd_kcontrol;16 17struct axg_tdm_formatter_hw {18	unsigned int skew_offset;19};20 21struct axg_tdm_formatter_ops {22	struct axg_tdm_stream *(*get_stream)(struct snd_soc_dapm_widget *w);23	void (*enable)(struct regmap *map);24	void (*disable)(struct regmap *map);25	int (*prepare)(struct regmap *map,26		       const struct axg_tdm_formatter_hw *quirks,27		       struct axg_tdm_stream *ts);28};29 30struct axg_tdm_formatter_driver {31	const struct snd_soc_component_driver *component_drv;32	const struct regmap_config *regmap_cfg;33	const struct axg_tdm_formatter_ops *ops;34	const struct axg_tdm_formatter_hw *quirks;35};36 37int axg_tdm_formatter_set_channel_masks(struct regmap *map,38					struct axg_tdm_stream *ts,39					unsigned int offset);40int axg_tdm_formatter_event(struct snd_soc_dapm_widget *w,41			    struct snd_kcontrol *control,42			    int event);43int axg_tdm_formatter_probe(struct platform_device *pdev);44 45#endif /* _MESON_AXG_TDM_FORMATTER_H */46