xref: /openbmc/linux/sound/soc/tegra/tegra_pcm.h (revision 150f4d57)
12b27bdccSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
27605eb5bSStephen Warren /*
37605eb5bSStephen Warren  * tegra_pcm.h - Definitions for Tegra PCM driver
47605eb5bSStephen Warren  *
57605eb5bSStephen Warren  * Author: Stephen Warren <swarren@nvidia.com>
6518de86bSStephen Warren  * Copyright (C) 2010,2012 - NVIDIA, Inc.
77605eb5bSStephen Warren  *
87605eb5bSStephen Warren  * Based on code copyright/by:
97605eb5bSStephen Warren  *
107605eb5bSStephen Warren  * Copyright (c) 2009-2010, NVIDIA Corporation.
117605eb5bSStephen Warren  * Scott Peterson <speterson@nvidia.com>
127605eb5bSStephen Warren  *
137605eb5bSStephen Warren  * Copyright (C) 2010 Google, Inc.
147605eb5bSStephen Warren  * Iliyan Malchev <malchev@google.com>
157605eb5bSStephen Warren  */
167605eb5bSStephen Warren 
177605eb5bSStephen Warren #ifndef __TEGRA_PCM_H__
187605eb5bSStephen Warren #define __TEGRA_PCM_H__
197605eb5bSStephen Warren 
20f74028e1SSameer Pujar #include <sound/dmaengine_pcm.h>
21f74028e1SSameer Pujar #include <sound/asound.h>
225608bd3eSStephen Warren 
23f74028e1SSameer Pujar int tegra_pcm_construct(struct snd_soc_component *component,
24f74028e1SSameer Pujar 			struct snd_soc_pcm_runtime *rtd);
25f74028e1SSameer Pujar int tegra_pcm_open(struct snd_soc_component *component,
26f74028e1SSameer Pujar 		   struct snd_pcm_substream *substream);
27f74028e1SSameer Pujar int tegra_pcm_close(struct snd_soc_component *component,
28f74028e1SSameer Pujar 		    struct snd_pcm_substream *substream);
29f74028e1SSameer Pujar int tegra_pcm_hw_params(struct snd_soc_component *component,
30f74028e1SSameer Pujar 			struct snd_pcm_substream *substream,
31f74028e1SSameer Pujar 			struct snd_pcm_hw_params *params);
32f74028e1SSameer Pujar snd_pcm_uframes_t tegra_pcm_pointer(struct snd_soc_component *component,
33f74028e1SSameer Pujar 				    struct snd_pcm_substream *substream);
34518de86bSStephen Warren int tegra_pcm_platform_register(struct device *dev);
35*150f4d57SDmitry Osipenko int devm_tegra_pcm_platform_register(struct device *dev);
365608bd3eSStephen Warren int tegra_pcm_platform_register_with_chan_names(struct device *dev,
375608bd3eSStephen Warren 				struct snd_dmaengine_pcm_config *config,
385608bd3eSStephen Warren 				char *txdmachan, char *rxdmachan);
39518de86bSStephen Warren void tegra_pcm_platform_unregister(struct device *dev);
40518de86bSStephen Warren 
417605eb5bSStephen Warren #endif
42