blob: 155e1b40e28a1c91e9a6f8b228b46a12ff3c30c0
1 | /* |
2 | * Copyright (C) 2012 Samsung Electronics |
3 | * R. Chandrasekar < rcsekar@samsung.com> |
4 | * |
5 | * SPDX-License-Identifier: GPL-2.0+ |
6 | */ |
7 | |
8 | #ifndef __SOUND_H__ |
9 | #define __SOUND_H__ |
10 | |
11 | /* sound codec enum */ |
12 | enum en_sound_codec { |
13 | CODEC_WM_8994, |
14 | CODEC_WM_8995, |
15 | CODEC_MAX_98095, |
16 | CODEC_MAX |
17 | }; |
18 | |
19 | /* sound codec enum */ |
20 | enum sound_compat { |
21 | AUDIO_COMPAT_SPI, |
22 | AUDIO_COMPAT_I2C, |
23 | }; |
24 | |
25 | /* Codec information structure to store the info from device tree */ |
26 | struct sound_codec_info { |
27 | int i2c_bus; |
28 | int i2c_dev_addr; |
29 | enum en_sound_codec codec_type; |
30 | }; |
31 | |
32 | /* |
33 | * Generates square wave sound data for 1 second |
34 | * |
35 | * @param data data buffer pointer |
36 | * @param size size of the buffer |
37 | * @param freq frequency of the wave |
38 | */ |
39 | void sound_create_square_wave(unsigned short *data, int size, uint32_t freq); |
40 | |
41 | /* |
42 | * Initialises audio sub system |
43 | * @param blob Pointer of device tree node or NULL if none. |
44 | * @return int value 0 for success, -1 for error |
45 | */ |
46 | int sound_init(const void *blob); |
47 | |
48 | /* |
49 | * plays the pcm data buffer in pcm_data.h through i2s1 to make the |
50 | * sine wave sound |
51 | * |
52 | * @return int 0 for success, -1 for error |
53 | */ |
54 | int sound_play(uint32_t msec, uint32_t frequency); |
55 | |
56 | #endif /* __SOUND__H__ */ |
57 |