652 lines
22 KiB
C
Executable File
652 lines
22 KiB
C
Executable File
/*
|
|
* Copyright (C) 2018 Knowles Electronics
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef _IAXXX_ODSP_HW_H_
|
|
#define _IAXXX_ODSP_HW_H_
|
|
|
|
#if __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include <linux/mfd/adnc/iaxxx-odsp.h>
|
|
#include <linux/mfd/adnc/iaxxx-system-identifiers.h>
|
|
|
|
#define NAME_MAX_SIZE 256
|
|
struct iaxxx_odsp_hw;
|
|
|
|
struct iaxxx_config_file {
|
|
const char *filename;
|
|
};
|
|
|
|
struct iaxxx_config_value {
|
|
uint64_t config_val;
|
|
uint32_t config_val_sz;
|
|
};
|
|
|
|
union iaxxx_config_data {
|
|
struct iaxxx_config_file fdata;
|
|
struct iaxxx_config_value vdata;
|
|
};
|
|
|
|
enum iaxxx_config_type {
|
|
CONFIG_FILE,
|
|
CONFIG_VALUE
|
|
};
|
|
|
|
struct iaxxx_create_config_data {
|
|
enum iaxxx_config_type type;
|
|
union iaxxx_config_data data;
|
|
};
|
|
|
|
struct iaxxx_plugin_status_data {
|
|
uint32_t block_id;
|
|
uint8_t create_status;
|
|
uint8_t enable_status;
|
|
uint16_t process_count;
|
|
uint16_t process_err_count;
|
|
uint32_t in_frames_consumed;
|
|
uint32_t out_frames_produced;
|
|
uint32_t private_memsize;
|
|
uint8_t frame_notification_mode;
|
|
uint8_t state_management_mode;
|
|
};
|
|
|
|
struct iaxxx_plugin_endpoint_status_data {
|
|
uint8_t status;
|
|
uint8_t frame_status;
|
|
uint8_t endpoint_status;
|
|
uint8_t usage;
|
|
uint8_t mandatory;
|
|
uint16_t counter;
|
|
uint8_t op_encoding;
|
|
uint8_t op_sample_rate;
|
|
uint16_t op_frame_length;
|
|
};
|
|
|
|
struct iaxxx_get_event_info {
|
|
uint16_t event_id;
|
|
uint32_t data;
|
|
};
|
|
|
|
enum clock_source {
|
|
SYSCLK,
|
|
INT_OSC,
|
|
EXT_OSC,
|
|
};
|
|
|
|
/**
|
|
* Initialize the ODSP HAL
|
|
*
|
|
* Input - NA
|
|
* Output - Handle to iaxxx_odsp_hw on success, NULL on failure
|
|
*/
|
|
struct iaxxx_odsp_hw* iaxxx_odsp_init();
|
|
|
|
/**
|
|
* De-Initialize the ODSP HAL
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_deinit(struct iaxxx_odsp_hw *odsp_hw_hdl);
|
|
|
|
/**
|
|
* Load a package
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* pkg_name - Relative path to the Package binary (Should be placed in
|
|
* the firmware location)
|
|
* pkg_id - Package ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_package_load(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const char *pkg_name,
|
|
const uint32_t pkg_id);
|
|
|
|
/**
|
|
* Unload a package
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* pkg_id - Package ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_package_unload(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t pkg_id);
|
|
|
|
/**
|
|
* Get package version
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* version - Package version string buffer
|
|
* len - String buffer size
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_package_version(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint8_t inst_id, char *version, uint32_t len);
|
|
|
|
/**
|
|
* Get plugin version
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* version - Plugin version string buffer
|
|
* len - String buffer size
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_plugin_version(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint8_t inst_id, char *version, uint32_t len);
|
|
|
|
/**
|
|
* Create a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* priority - Priority of the plugin
|
|
* pkg_id - Package ID
|
|
* plg_idx - Plugin Index*
|
|
* block_id - Block ID
|
|
* config_id - Config ID
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_create(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t priority,
|
|
const uint32_t pkg_id,
|
|
const uint32_t plg_idx,
|
|
const uint32_t block_id,
|
|
const uint32_t config_id);
|
|
|
|
/**
|
|
* Set the creation configuration on a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* cdata - Creation configuration data
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_creation_config(
|
|
struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id,
|
|
struct iaxxx_create_config_data cdata);
|
|
|
|
/**
|
|
* Destroy the plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_destroy(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id);
|
|
|
|
/**
|
|
* Enable the plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_enable(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id);
|
|
|
|
/**
|
|
* Disable the plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_disable(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id);
|
|
|
|
/**
|
|
* Reset the plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_reset(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id);
|
|
|
|
/**
|
|
* Set a parameter on a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* param_id - Parameter ID
|
|
* param_val - Parameter Value*
|
|
* block_id - Block ID
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_parameter(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t param_id,
|
|
const uint32_t param_val,
|
|
const uint32_t block_id);
|
|
|
|
/**
|
|
* Get the value of parameter on a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* param_id - Parameter ID
|
|
* block_id - Block ID*
|
|
* param_val - Parameter Value
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_parameter(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t param_id,
|
|
const uint32_t block_id,
|
|
uint32_t *param_val);
|
|
|
|
/**
|
|
* Set a parameter block on a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* param_blk_id - Parameter block id
|
|
* block_id - Block ID
|
|
* param_buf - Pointer to the parameter block
|
|
* param_buf_sz - Parameter block size
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_parameter_blk(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t param_blk_id,
|
|
const uint32_t block_id,
|
|
const void *param_buf,
|
|
const uint32_t param_buf_sz);
|
|
|
|
/**
|
|
* Set a parameter block on a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* param_blk_id - Parameter block id
|
|
* block_id - Block ID
|
|
* file_name - Relative path to the Parameter File(Should be placed in
|
|
* the firmware location)
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_parameter_blk_from_file(
|
|
struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t param_blk_id,
|
|
const uint32_t block_id,
|
|
const char *file_name);
|
|
|
|
/**
|
|
* Set custom configuration for plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* param_blk_id - Parameter block id
|
|
* custom_config_id - Id for what type of custom configuration
|
|
* filename - Name of file with custom config data
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_custom_cfg(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id,
|
|
const uint32_t param_blk_id,
|
|
const uint32_t custom_config_id,
|
|
const char *filename);
|
|
|
|
/**
|
|
* Subscribe to an event
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* src_id - System Id of event source
|
|
* event_id - Event Id
|
|
* dst_id - System Id of event destination
|
|
* dst_opaque - Info sought by destination task when even occurs
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_subscribe(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint16_t src_id,
|
|
const uint16_t event_id,
|
|
const uint16_t dst_id,
|
|
const uint32_t dst_opaque);
|
|
|
|
/**
|
|
* Unsubscribe an event
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* src_id - System Id of event source
|
|
* event_id - Event Id
|
|
* dst_id - System Id of event destination
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_unsubscribe(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint16_t src_id,
|
|
const uint16_t event_id,
|
|
const uint16_t dst_id);
|
|
|
|
/**
|
|
* Trigger an event. This may be most useful when debugging the system,
|
|
* but can also be used to trigger simultaneous behavior in entities which
|
|
* have subscribed, or to simply provide notifications regarding host status:
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* src_id - SystemId of event source
|
|
* evt_id - Id of event
|
|
* src_opaque - Source opaque to pass with event notification
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_trigger(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint16_t src_id,
|
|
uint16_t evt_id,
|
|
uint32_t src_opaque);
|
|
|
|
/**
|
|
* Fetches next event subscription entry from the last read position
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* src_id - System Id of event source
|
|
* evt_id - Event Id
|
|
* dst_id - System Id of event destination
|
|
* dst_opaque - Destination opaque data
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_read_subscription(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint16_t *src_id,
|
|
uint16_t *evt_id,
|
|
uint16_t *dst_id,
|
|
uint32_t *dst_opaque);
|
|
|
|
/**
|
|
* Reset index for retrieving subscription entries
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_reset_read_index(struct iaxxx_odsp_hw *odsp_hw_hdl);
|
|
|
|
/**
|
|
* Retrieve an event notification
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* src_id - pointer to uint16_t for reporting SystemId of
|
|
* event source
|
|
* evt_dd - pointer to uint16_t for reporting Id of event
|
|
* src_opaque - pointer to the first parameter of event
|
|
* dst_opaque - pointer to the second parameter of event
|
|
* This will be destOpaque in case if event is
|
|
* subscribed with valid destOpaque otherwise
|
|
* it will be used as second parameter.
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_retrieve_notification(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint16_t *src_id,
|
|
uint16_t *evt_id,
|
|
uint32_t *src_opaque,
|
|
uint32_t *dst_opaque);
|
|
|
|
/**
|
|
* Retrieve an event
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* event_info - Struct to return event info
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_evt_getevent(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
struct iaxxx_get_event_info *event_info);
|
|
|
|
/**
|
|
* Create a plugin for a statically loaded package
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* priority - Priority of the plugin
|
|
* pkg_id - Package ID
|
|
* plg_idx - Plugin Index*
|
|
* block_id - Block ID
|
|
* config_id - Config ID
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_create_static_package(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t priority,
|
|
const uint32_t pkg_id,
|
|
const uint32_t plg_idx,
|
|
const uint32_t block_id,
|
|
const uint32_t config_id);
|
|
|
|
/**
|
|
* Get a parameter block from a plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* block_id - Block ID
|
|
* param_blk_id - Parameter block id
|
|
* param_buf - Pointer to the parameter block
|
|
* param_buf_sz - Parameter block size in words
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_parameter_blk(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t block_id,
|
|
const uint32_t param_blk_id,
|
|
uint32_t *param_buf,
|
|
const uint32_t param_buf_sz);
|
|
|
|
/**
|
|
* Set Event for the plugin
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* eventEnableMask - event Mask
|
|
* block_id - Block ID
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_setevent(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t eventEnableMask,
|
|
const uint32_t block_id);
|
|
|
|
/* Read Plugin Error Info
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* error_code - Pointer to uint32 to return error code
|
|
* error_instance - Pointer to uint8 to return plugin instance
|
|
* where error occurred.
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_read_error(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t block_id,
|
|
uint32_t *error_code,
|
|
uint8_t *error_instance);
|
|
|
|
/* Read the timestamps of all output endpoint
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* proc_id - Proc ID
|
|
* timestamps - The timestamps array(with 16 elements count)
|
|
* to be filled.
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_ep_timestamps(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint64_t *timestamps, uint8_t proc_id);
|
|
|
|
/**
|
|
* Set a parameter block on a plugin and get ack to
|
|
* ensure the data has been sent and retry if not.
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* param_blk_id - Parameter block id
|
|
* block_id - Block ID
|
|
* set_param_buf - Pointer to the parameter block
|
|
* set_param_buf_sz - Parameter block size in bytes
|
|
* response_data_buf - Buffer for response data from plugin
|
|
* response_data_sz - Size of Buffer in uint32 words for
|
|
* response data from plugin
|
|
* max_no_retries - Max number of retries in case of busy
|
|
* response from plugin.
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_set_parameter_blk_with_ack(
|
|
struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint32_t param_blk_id,
|
|
const uint32_t block_id,
|
|
const void *set_param_buf,
|
|
const uint32_t set_param_buf_sz,
|
|
uint32_t* response_data_buf,
|
|
const uint32_t response_data_sz,
|
|
const uint32_t max_no_retries);
|
|
|
|
/**
|
|
* Get Plugin status information.
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* plugin_status_data - Pointer to struct to return plugin status.
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_status_info(
|
|
struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
struct iaxxx_plugin_status_data *plugin_status_data);
|
|
|
|
/**
|
|
* Get Plugin endpoint status information.
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* inst_id - Instance ID
|
|
* ep_index - Index of Endpoint
|
|
* direction - If Input endpoint or Output endpoint
|
|
* 0 => input, 1 => output
|
|
* plugin_ep_status_data - Pointer to struct to return plugin
|
|
* endpoint status.
|
|
*
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_plugin_get_endpoint_status(
|
|
struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
const uint32_t inst_id,
|
|
const uint8_t ep_index,
|
|
const uint8_t direction,
|
|
struct iaxxx_plugin_endpoint_status_data *plugin_ep_status_data);
|
|
|
|
/**
|
|
* Returns the execution status of given processor
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* proc_id - Proc id
|
|
* status - Execution status of the processor
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_get_proc_execution_status(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint8_t proc_id, uint32_t *status);
|
|
|
|
/**
|
|
* Returns Rom version number, Rom version string
|
|
* Application version number, Application version string
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* rom_ver_num - Rom version number
|
|
* rom_ver_str - Rom version string
|
|
* rom_ver_str_len - Rom version string length
|
|
* app_ver_num - App version number
|
|
* app_ver_str - App version string
|
|
* app_ver_str_len - App version string length
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_get_sys_versions(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint32_t *rom_ver_num,
|
|
char *rom_ver_str,
|
|
uint32_t rom_ver_str_len,
|
|
uint32_t *app_ver_num,
|
|
char *app_ver_str,
|
|
uint32_t app_ver_str_len);
|
|
|
|
/**
|
|
* Returns Device ID
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* device_id - Returned Device ID
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_get_device_id(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint32_t *device_id);
|
|
|
|
/**
|
|
* Returns Firmware status
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
* mode - Returned firmware status
|
|
* 0: Firmware has crashed
|
|
* 1: Firmware is idle
|
|
* 2: Firmware is active
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_get_fw_status(struct iaxxx_odsp_hw *odsp_hw_hdl,
|
|
uint32_t *status);
|
|
|
|
/**
|
|
* Resets the firmware by redownloading the firmware
|
|
*
|
|
* Input - odsp_hw_hdl - Handle to odsp hw structure
|
|
*
|
|
* Output - 0 on success, on failure < 0
|
|
*/
|
|
int iaxxx_odsp_reset_fw(struct iaxxx_odsp_hw *odsp_hw_hdl);
|
|
|
|
#if __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // #ifndef _IAXXX_ODSP_HW_H_
|