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