xref: /rk3399_rockchip-uboot/include/sound.h (revision a77bf70978a42e94790a8bc81941edc1026939ce)
1511ed5fdSRajeshwari Shinde /*
2511ed5fdSRajeshwari Shinde  * Copyright (C) 2012 Samsung Electronics
3511ed5fdSRajeshwari Shinde  * R. Chandrasekar < rcsekar@samsung.com>
4511ed5fdSRajeshwari Shinde  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
6511ed5fdSRajeshwari Shinde  */
7511ed5fdSRajeshwari Shinde 
8511ed5fdSRajeshwari Shinde #ifndef __SOUND_H__
9511ed5fdSRajeshwari Shinde #define __SOUND_H__
10511ed5fdSRajeshwari Shinde 
11511ed5fdSRajeshwari Shinde /* sound codec enum */
12511ed5fdSRajeshwari Shinde enum en_sound_codec {
13511ed5fdSRajeshwari Shinde 	CODEC_WM_8994,
14511ed5fdSRajeshwari Shinde 	CODEC_WM_8995,
1514d2dfc3SRajeshwari Shinde 	CODEC_MAX_98095,
16511ed5fdSRajeshwari Shinde 	CODEC_MAX
17511ed5fdSRajeshwari Shinde };
18511ed5fdSRajeshwari Shinde 
19511ed5fdSRajeshwari Shinde /* sound codec enum */
20511ed5fdSRajeshwari Shinde enum sound_compat {
21511ed5fdSRajeshwari Shinde 	AUDIO_COMPAT_SPI,
22511ed5fdSRajeshwari Shinde 	AUDIO_COMPAT_I2C,
23511ed5fdSRajeshwari Shinde };
24511ed5fdSRajeshwari Shinde 
25511ed5fdSRajeshwari Shinde /* Codec information structure to store the info from device tree */
26511ed5fdSRajeshwari Shinde struct sound_codec_info {
27511ed5fdSRajeshwari Shinde 	int i2c_bus;
28511ed5fdSRajeshwari Shinde 	int i2c_dev_addr;
29511ed5fdSRajeshwari Shinde 	enum en_sound_codec codec_type;
30511ed5fdSRajeshwari Shinde };
31511ed5fdSRajeshwari Shinde 
32511ed5fdSRajeshwari Shinde /*
33*a77bf709SSimon Glass  * Generates square wave sound data for 1 second
34*a77bf709SSimon Glass  *
35*a77bf709SSimon Glass  * @param data          data buffer pointer
36*a77bf709SSimon Glass  * @param size          size of the buffer
37*a77bf709SSimon Glass  * @param freq          frequency of the wave
38*a77bf709SSimon Glass  */
39*a77bf709SSimon Glass void sound_create_square_wave(unsigned short *data, int size, uint32_t freq);
40*a77bf709SSimon Glass 
41*a77bf709SSimon Glass /*
42511ed5fdSRajeshwari Shinde  * Initialises audio sub system
43f482310cSRajeshwari Shinde  * @param blob	Pointer of device tree node or NULL if none.
44511ed5fdSRajeshwari Shinde  * @return	int value 0 for success, -1 for error
45511ed5fdSRajeshwari Shinde  */
46f482310cSRajeshwari Shinde int sound_init(const void *blob);
47511ed5fdSRajeshwari Shinde 
48511ed5fdSRajeshwari Shinde /*
49511ed5fdSRajeshwari Shinde  * plays the pcm data buffer in pcm_data.h through i2s1 to make the
50511ed5fdSRajeshwari Shinde  * sine wave sound
51511ed5fdSRajeshwari Shinde  *
52511ed5fdSRajeshwari Shinde  * @return	int 0 for success, -1 for error
53511ed5fdSRajeshwari Shinde  */
54511ed5fdSRajeshwari Shinde int sound_play(uint32_t msec, uint32_t frequency);
55511ed5fdSRajeshwari Shinde 
56511ed5fdSRajeshwari Shinde #endif  /* __SOUND__H__ */
57