mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 02:51:00 +00:00
a77bf70978
The i2s code is in fact Samsung-specific, but there might be other implementation. Move this code into its own file. This makes it slightly more obviously how to adjust the code to support another SoC, when someone takes this task on. Also drop non-FDT support, since it isn't used on Exynos 5. Tested-by: Che-Liang Chiou <clchiou@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
/*
|
|
* 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);
|
|
|
|
#endif /* __SOUND__H__ */
|