diff options
Diffstat (limited to 'include/audio_codec.h')
-rw-r--r-- | include/audio_codec.h | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/include/audio_codec.h b/include/audio_codec.h deleted file mode 100644 index b80d1c0f57..0000000000 --- a/include/audio_codec.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright 2019 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef __CROS_EC_AUDIO_CODEC_H -#define __CROS_EC_AUDIO_CODEC_H - -#include "stdint.h" - -/* - * Common abstract layer - */ - -/* - * Checks capability of audio codec. - * - * @cap is an integer from enum ec_codec_cap. Note that it represents a - * bit field in a 32-bit integer. The valid range is [0, 31]. - * - * Returns: - * 1 if audio codec capabilities include cap passed as parameter. - * 0 if not capable. - */ -int audio_codec_capable(uint8_t cap); - -/* - * Registers shared memory (SHM). - * - * @shm_id is a SHM identifier from enum ec_codec_shm_id. - * @cap is an integer from enum ec_codec_cap. - * @addr is the address pointer to the SHM. - * @len is the maximum length of the SHM. - * @type is an integer from enum ec_codec_shm_type. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal errors. - * EC_ERROR_INVAL if invalid shm_id. - * EC_ERROR_INVAL if invalid cap. - * EC_ERROR_BUSY if the shm_id has been registered. - */ -int audio_codec_register_shm(uint8_t shm_id, uint8_t cap, - uintptr_t *addr, uint32_t len, uint8_t type); - -/* - * Translates the physical address from AP to EC's memory space. Required if - * wants to use AP SHM. - * - * @ap_addr is physical address from AP. - * @ec_addr is the translation destination. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal errors. - * EC_ERROR_UNIMPLEMENTED if no concrete implementation. - */ -int audio_codec_memmap_ap_to_ec(uintptr_t ap_addr, uintptr_t *ec_addr); - -/* - * Scales a S16_LE sample by multiplying scalar. - */ -int16_t audio_codec_s16_scale_and_clip(int16_t orig, uint8_t scalar); - - -/* - * DMIC abstract layer - */ - -/* - * Gets the maximum possible gain value. All channels share the same maximum - * gain value [0, max]. - * - * The gain has no unit and should fit in a scale to represent relative dB. - * - * For example, suppose maximum possible gain value is 4, one could define a - * mapping: - * - 0 => -10 dB - * - 1 => -5 dB - * - 2 => 0 dB - * - 3 => 5 dB - * - 4 => 10 dB - * - * @max_gain is the destination address to put the gain value. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - */ -int audio_codec_dmic_get_max_gain(uint8_t *max_gain); - -/* - * Sets the microphone gain for the specified channel. - * - * @channel is an integer from enum ec_codec_dmic_channel. The valid range - * is [0, 7]. - * @gain is the target gain for the specified channel. The valid range - * is [0, max_gain]. See also audio_codec_dmic_get_max_gain. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_INVAL if channel does not look good. - * EC_ERROR_INVAL if gain does not look good. - */ -int audio_codec_dmic_set_gain_idx(uint8_t channel, uint8_t gain); - -/* - * Gets the microphone gain of the specified channel. - * - * @channel is an integer from enum ec_codec_dmic_channel. The valid range - * is [0, 7]. - * @gain is the destination address to put the gain value of the channel. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_INVAL if channel does not look good. - */ -int audio_codec_dmic_get_gain_idx(uint8_t channel, uint8_t *gain); - - -/* - * I2S RX abstract layer - */ - -/* - * Enables I2S RX. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has enabled. - */ -int audio_codec_i2s_rx_enable(void); - -/* - * Disables I2S RX. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has not enabled. - */ -int audio_codec_i2s_rx_disable(void); - -/* - * Sets I2S RX sample depth. - * - * @depth is an integer from enum ec_codec_i2s_rx_sample_depth. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_INVAL if depth does not look good. - */ -int audio_codec_i2s_rx_set_sample_depth(uint8_t depth); - -/* - * Sets I2S RX DAI format. - * - * @daifmt is an integer from enum ec_codec_i2s_rx_daifmt. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_INVAL if daifmt does not look good. - */ -int audio_codec_i2s_rx_set_daifmt(uint8_t daifmt); - -/* - * Sets I2S RX BCLK. - * - * @bclk is an integer to represent the bit clock rate. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_INVAL if bclk does not look good. - */ -int audio_codec_i2s_rx_set_bclk(uint32_t bclk); - - -/* - * WoV abstract layer - */ - -/* - * Enables WoV. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has enabled. - */ -int audio_codec_wov_enable(void); - -/* - * Disables WoV. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has not enabled. - */ -int audio_codec_wov_disable(void); - -/* - * Reads the WoV audio data from chip. - * - * @buf is the target pointer to put the data. - * @count is the maximum number of bytes to read. - * - * Returns: - * -1 if any errors. - * 0 if no data. - * >0 if success. The returned value denotes number of bytes read. - */ -int32_t audio_codec_wov_read(void *buf, uint32_t count); - -/* - * Enables notification if WoV audio data is available. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has enabled. - * EC_ERROR_ACCESS_DENIED if the notifiee has not set. - */ -int audio_codec_wov_enable_notifier(void); - -/* - * Disables WoV data notification. - * - * Returns: - * EC_SUCCESS if success. - * EC_ERROR_UNKNOWN if internal error. - * EC_ERROR_BUSY if has not enabled. - * EC_ERROR_ACCESS_DENIED if the notifiee has not set. - */ -int audio_codec_wov_disable_notifier(void); - -/* - * Audio buffer for 2 seconds S16_LE, 16kHz, mono. - */ -extern uintptr_t audio_codec_wov_audio_buf_addr; - -/* - * Language model buffer for speech-micro. At least 67KB. - */ -extern uintptr_t audio_codec_wov_lang_buf_addr; - -/* - * Task for running WoV. - */ -void audio_codec_wov_task(void *arg); - -#endif |