^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*****************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) AudioScience HPI driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Copyright (C) 1997-2011 AudioScience Inc. <support@audioscience.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Public declarations for DSP Proramming Interface to TI C6701
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Shared between hpi6000.c and DSP code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) (C) Copyright AudioScience Inc. 1998-2003
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #ifndef _HPI6000_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define _HPI6000_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define HPI_NMIXER_CONTROLS 200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * Control caching is always supported in the HPI code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * The DSP should make sure that dwControlCacheSizeInBytes is initialized to 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * during boot to make it in-active.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct hpi_hif_6000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) u32 host_cmd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) u32 dsp_ack;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) u32 address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) u32 length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) u32 message_buffer_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) u32 response_buffer_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) u32 dsp_number;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) u32 adapter_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) u32 control_cache_is_dirty;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) u32 control_cache_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) u32 control_cache_size_in_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) u32 control_cache_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define HPI_HIF_PACK_ADAPTER_INFO(adapter, version_major, version_minor) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ((adapter << 16) | (version_major << 8) | version_minor)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define HPI_HIF_ADAPTER_INFO_EXTRACT_ADAPTER(adapterinfo) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) ((adapterinfo >> 16) & 0xffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define HPI_HIF_ADAPTER_INFO_EXTRACT_HWVERSION_MAJOR(adapterinfo) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) ((adapterinfo >> 8) & 0xff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define HPI_HIF_ADAPTER_INFO_EXTRACT_HWVERSION_MINOR(adapterinfo) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) (adapterinfo & 0xff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) /* Command/status exchanged between host and DSP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define HPI_HIF_IDLE 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define HPI_HIF_SEND_MSG 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define HPI_HIF_GET_RESP 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define HPI_HIF_DATA_MASK 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define HPI_HIF_SEND_DATA 0x13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define HPI_HIF_GET_DATA 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define HPI_HIF_SEND_DONE 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define HPI_HIF_RESET 9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #endif /* _HPI6000_H_ */