/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __DRIVERS_INTEL_SOUNDWIRE_H__ #define __DRIVERS_INTEL_SOUNDWIRE_H__ #include <device/soundwire.h> #include <types.h> /** * enum intel_soundwire_quirk - Quirks for controller master links. * @INTEL_SOUNDWIRE_QUIRK_STATIC_CLOCK: Link clock is fixed. * @INTEL_SOUNDWIRE_QUIRK_BUS_DISABLE: This link should be disabled. */ enum intel_soundwire_quirk { INTEL_SOUNDWIRE_QUIRK_STATIC_CLOCK = BIT(0), INTEL_SOUNDWIRE_QUIRK_BUS_DISABLE = BIT(1), }; /** * struct intel_soundwire_controller - SoundWire controller configuration for Intel SoC. * @dev: Device handle for this controller. * @acpi_address: ACPI address for this controller. This is a custom address that is not * compatible with either PCI or SoundWire. * @ip_clock: Frequency of the source clock connected to the controller. * @quirk_mask: Quirks that can be passed to the kernel drivers. * @sdw: SoundWire controller properties defined in MIPI SoundWire DisCo Specification. */ struct intel_soundwire_controller { const struct device *dev; uint64_t acpi_address; unsigned int ip_clock; unsigned int quirk_mask; struct soundwire_controller sdw; }; /** * soc_fill_soundwire_controller() - Get SoundWire controller properties from the SoC. * @controller: Properties to be filled by the SoC. * Return zero for success, -1 if there was any error filling the properties. */ int soc_fill_soundwire_controller(struct intel_soundwire_controller **controller); #endif /* __DRIVERS_INTEL_SOUNDWIRE_H__ */