cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

axg-tdm-formatter.h (1239B)


      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_H
      8#define _MESON_AXG_TDM_FORMATTER_H
      9
     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 */