/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ /* * This file is provided under a dual BSD/GPLv2 license. When using or * redistributing this file, you may do so under either license. * * Copyright(c) 2018 Intel Corporation * * Author: Liam Girdwood <[email protected]> */ #ifndef __INCLUDE_SOUND_SOF_H #define __INCLUDE_SOUND_SOF_H #include <linux/pci.h> #include <sound/soc.h> #include <sound/soc-acpi.h> struct snd_sof_dsp_ops; struct snd_sof_dev; /** * enum sof_fw_state - DSP firmware state definitions * @SOF_FW_BOOT_NOT_STARTED: firmware boot is not yet started * @SOF_DSPLESS_MODE: DSP is not used * @SOF_FW_BOOT_PREPARE: preparing for boot (firmware loading for exaqmple) * @SOF_FW_BOOT_IN_PROGRESS: firmware boot is in progress * @SOF_FW_BOOT_FAILED: firmware boot failed * @SOF_FW_BOOT_READY_FAILED: firmware booted but fw_ready op failed * @SOF_FW_BOOT_READY_OK: firmware booted and fw_ready op passed * @SOF_FW_BOOT_COMPLETE: firmware is booted up and functional * @SOF_FW_CRASHED: firmware crashed after successful boot */ enum sof_fw_state { … }; /* DSP power states */ enum sof_dsp_power_states { … }; /* Definitions for multiple IPCs */ enum sof_ipc_type { … }; struct sof_loadable_file_profile { … }; /* * SOF Platform data. */ struct snd_sof_pdata { … }; /* * Descriptor used for setting up SOF platform data. This is used when * ACPI/PCI data is missing or mapped differently. */ struct sof_dev_desc { … }; int sof_dai_get_mclk(struct snd_soc_pcm_runtime *rtd); int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd); int sof_dai_get_tdm_slots(struct snd_soc_pcm_runtime *rtd); #endif