linux/sound/soc/qcom/lpass.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2010-2011,2013-2015,2020 The Linux Foundation. All rights reserved.
 *
 * lpass.h - Definitions for the QTi LPASS
 */

#ifndef __LPASS_H__
#define __LPASS_H__

#include <linux/clk.h>
#include <linux/compiler.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <dt-bindings/sound/qcom,lpass.h>
#include "lpass-hdmi.h"

#define LPASS_AHBIX_CLOCK_FREQUENCY
#define LPASS_MAX_PORTS
#define LPASS_MAX_MI2S_PORTS
#define LPASS_MAX_DMA_CHANNELS
#define LPASS_MAX_HDMI_DMA_CHANNELS
#define LPASS_MAX_CDC_DMA_CHANNELS
#define LPASS_MAX_VA_CDC_DMA_CHANNELS
#define LPASS_CDC_DMA_INTF_ONE_CHANNEL
#define LPASS_CDC_DMA_INTF_TWO_CHANNEL
#define LPASS_CDC_DMA_INTF_FOUR_CHANNEL
#define LPASS_CDC_DMA_INTF_SIX_CHANNEL
#define LPASS_CDC_DMA_INTF_EIGHT_CHANNEL

#define LPASS_ACTIVE_PDS
#define LPASS_PROXY_PDS

#define QCOM_REGMAP_FIELD_ALLOC(d, m, f, mf)

static inline bool is_cdc_dma_port(int dai_id)
{}

static inline bool is_rxtx_cdc_dma_port(int dai_id)
{}

struct lpaif_i2sctl {};


struct lpaif_dmactl {};

/* Both the CPU DAI and platform drivers will access this data */
struct lpass_data {};

/* Vairant data per each SOC */
struct lpass_variant {};

struct lpass_pcm_data {};

/* register the platform driver from the CPU DAI driver */
int asoc_qcom_lpass_platform_register(struct platform_device *pdev);
void asoc_qcom_lpass_cpu_platform_remove(struct platform_device *pdev);
void asoc_qcom_lpass_cpu_platform_shutdown(struct platform_device *pdev);
int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev);
extern const struct snd_soc_dai_ops asoc_qcom_lpass_cpu_dai_ops;
extern const struct snd_soc_dai_ops asoc_qcom_lpass_cpu_dai_ops2;
extern const struct snd_soc_dai_ops asoc_qcom_lpass_cdc_dma_dai_ops;

#endif /* __LPASS_H__ */