162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*****************************************************************************
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci    AudioScience HPI driver
562306a36Sopenharmony_ci    Copyright (C) 1997-2011  AudioScience Inc. <support@audioscience.com>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciPublic declarations for DSP Proramming Interface to TI C6701
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciShared between hpi6000.c and DSP code
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci(C) Copyright AudioScience Inc. 1998-2003
1362306a36Sopenharmony_ci******************************************************************************/
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#ifndef _HPI6000_H_
1662306a36Sopenharmony_ci#define _HPI6000_H_
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define HPI_NMIXER_CONTROLS 200
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * Control caching is always supported in the HPI code.
2262306a36Sopenharmony_ci * The DSP should make sure that dwControlCacheSizeInBytes is initialized to 0
2362306a36Sopenharmony_ci * during boot to make it in-active.
2462306a36Sopenharmony_ci */
2562306a36Sopenharmony_cistruct hpi_hif_6000 {
2662306a36Sopenharmony_ci	u32 host_cmd;
2762306a36Sopenharmony_ci	u32 dsp_ack;
2862306a36Sopenharmony_ci	u32 address;
2962306a36Sopenharmony_ci	u32 length;
3062306a36Sopenharmony_ci	u32 message_buffer_address;
3162306a36Sopenharmony_ci	u32 response_buffer_address;
3262306a36Sopenharmony_ci	u32 dsp_number;
3362306a36Sopenharmony_ci	u32 adapter_info;
3462306a36Sopenharmony_ci	u32 control_cache_is_dirty;
3562306a36Sopenharmony_ci	u32 control_cache_address;
3662306a36Sopenharmony_ci	u32 control_cache_size_in_bytes;
3762306a36Sopenharmony_ci	u32 control_cache_count;
3862306a36Sopenharmony_ci};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define HPI_HIF_PACK_ADAPTER_INFO(adapter, version_major, version_minor) \
4162306a36Sopenharmony_ci		((adapter << 16) | (version_major << 8) | version_minor)
4262306a36Sopenharmony_ci#define HPI_HIF_ADAPTER_INFO_EXTRACT_ADAPTER(adapterinfo) \
4362306a36Sopenharmony_ci		((adapterinfo >> 16) & 0xffff)
4462306a36Sopenharmony_ci#define HPI_HIF_ADAPTER_INFO_EXTRACT_HWVERSION_MAJOR(adapterinfo) \
4562306a36Sopenharmony_ci		((adapterinfo >> 8) & 0xff)
4662306a36Sopenharmony_ci#define HPI_HIF_ADAPTER_INFO_EXTRACT_HWVERSION_MINOR(adapterinfo) \
4762306a36Sopenharmony_ci		(adapterinfo & 0xff)
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci/* Command/status exchanged between host and DSP */
5062306a36Sopenharmony_ci#define HPI_HIF_IDLE            0
5162306a36Sopenharmony_ci#define HPI_HIF_SEND_MSG        1
5262306a36Sopenharmony_ci#define HPI_HIF_GET_RESP        2
5362306a36Sopenharmony_ci#define HPI_HIF_DATA_MASK       0x10
5462306a36Sopenharmony_ci#define HPI_HIF_SEND_DATA       0x13
5562306a36Sopenharmony_ci#define HPI_HIF_GET_DATA        0x14
5662306a36Sopenharmony_ci#define HPI_HIF_SEND_DONE       5
5762306a36Sopenharmony_ci#define HPI_HIF_RESET           9
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci#endif				/* _HPI6000_H_ */
60