/* * Copyright (C) 2012 Samsung Electronics * R. Chandrasekar < rcsekar@samsung.com> * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __SOUND_H__ #define __SOUND_H__ /* sound codec enum */ enum en_sound_codec { CODEC_WM_8994, CODEC_WM_8995, CODEC_MAX_98095, CODEC_MAX }; /* sound codec enum */ enum sound_compat { AUDIO_COMPAT_SPI, AUDIO_COMPAT_I2C, }; /* Codec information structure to store the info from device tree */ struct sound_codec_info { int i2c_bus; int i2c_dev_addr; enum en_sound_codec codec_type; }; /* * Generates square wave sound data for 1 second * * @param data data buffer pointer * @param size size of the buffer * @param freq frequency of the wave */ void sound_create_square_wave(unsigned short *data, int size, uint32_t freq); /* * Initialises audio sub system * @param blob Pointer of device tree node or NULL if none. * @return int value 0 for success, -1 for error */ int sound_init(const void *blob); /* * plays the pcm data buffer in pcm_data.h through i2s1 to make the * sine wave sound * * @return int 0 for success, -1 for error */ int sound_play(uint32_t msec, uint32_t frequency); struct snd_soc_dai_ops { int (*hw_params)(struct udevice *dev, unsigned int samplerate, unsigned int fmt, unsigned int channels); int (*startup)(struct udevice *dev); int (*shutdown)(struct udevice *dev); int (*transfer)(struct udevice *dev, unsigned int *data, unsigned long data_size); int (*set_sysclk)(struct udevice *dev, unsigned int freq); }; #endif /* __SOUND__H__ */