xref: /kernel/linux/linux-6.6/sound/soc/fsl/fsl_rpmsg.h (revision 62306a36)
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2017-2021 NXP
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __FSL_RPMSG_H
762306a36Sopenharmony_ci#define __FSL_RPMSG_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/*
1062306a36Sopenharmony_ci * struct fsl_rpmsg_soc_data
1162306a36Sopenharmony_ci * @rates: supported rates
1262306a36Sopenharmony_ci * @formats: supported formats
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_cistruct fsl_rpmsg_soc_data {
1562306a36Sopenharmony_ci	int rates;
1662306a36Sopenharmony_ci	u64 formats;
1762306a36Sopenharmony_ci};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci/*
2062306a36Sopenharmony_ci * struct fsl_rpmsg - rpmsg private data
2162306a36Sopenharmony_ci *
2262306a36Sopenharmony_ci * @ipg: ipg clock for cpu dai (SAI)
2362306a36Sopenharmony_ci * @mclk: master clock for cpu dai (SAI)
2462306a36Sopenharmony_ci * @dma: clock for dma device
2562306a36Sopenharmony_ci * @pll8k: parent clock for multiple of 8kHz frequency
2662306a36Sopenharmony_ci * @pll11k: parent clock for multiple of 11kHz frequency
2762306a36Sopenharmony_ci * @card_pdev: Platform_device pointer to register a sound card
2862306a36Sopenharmony_ci * @soc_data: soc specific data
2962306a36Sopenharmony_ci * @mclk_streams: Active streams that are using baudclk
3062306a36Sopenharmony_ci * @force_lpa: force enable low power audio routine if condition satisfy
3162306a36Sopenharmony_ci * @enable_lpa: enable low power audio routine according to dts setting
3262306a36Sopenharmony_ci * @buffer_size: pre allocated dma buffer size
3362306a36Sopenharmony_ci */
3462306a36Sopenharmony_cistruct fsl_rpmsg {
3562306a36Sopenharmony_ci	struct clk *ipg;
3662306a36Sopenharmony_ci	struct clk *mclk;
3762306a36Sopenharmony_ci	struct clk *dma;
3862306a36Sopenharmony_ci	struct clk *pll8k;
3962306a36Sopenharmony_ci	struct clk *pll11k;
4062306a36Sopenharmony_ci	struct platform_device *card_pdev;
4162306a36Sopenharmony_ci	const struct fsl_rpmsg_soc_data *soc_data;
4262306a36Sopenharmony_ci	unsigned int mclk_streams;
4362306a36Sopenharmony_ci	int force_lpa;
4462306a36Sopenharmony_ci	int enable_lpa;
4562306a36Sopenharmony_ci	int buffer_size;
4662306a36Sopenharmony_ci};
4762306a36Sopenharmony_ci#endif /* __FSL_RPMSG_H */
48