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_ciHost Interface module for an ASI6205 based 962306a36Sopenharmony_cibus mastering PCI adapter. 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciCopyright AudioScience, Inc., 2003 1262306a36Sopenharmony_ci******************************************************************************/ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#ifndef _HPI6205_H_ 1562306a36Sopenharmony_ci#define _HPI6205_H_ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#include "hpi_internal.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/*********************************************************** 2062306a36Sopenharmony_ci Defines used for basic messaging 2162306a36Sopenharmony_ci************************************************************/ 2262306a36Sopenharmony_ci#define H620_HIF_RESET 0 2362306a36Sopenharmony_ci#define H620_HIF_IDLE 1 2462306a36Sopenharmony_ci#define H620_HIF_GET_RESP 2 2562306a36Sopenharmony_ci#define H620_HIF_DATA_DONE 3 2662306a36Sopenharmony_ci#define H620_HIF_DATA_MASK 0x10 2762306a36Sopenharmony_ci#define H620_HIF_SEND_DATA 0x14 2862306a36Sopenharmony_ci#define H620_HIF_GET_DATA 0x15 2962306a36Sopenharmony_ci#define H620_HIF_UNKNOWN 0x0000ffff 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci/*********************************************************** 3262306a36Sopenharmony_ci Types used for mixer control caching 3362306a36Sopenharmony_ci************************************************************/ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#define H620_MAX_ISTREAMS 32 3662306a36Sopenharmony_ci#define H620_MAX_OSTREAMS 32 3762306a36Sopenharmony_ci#define HPI_NMIXER_CONTROLS 2048 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/********************************************************************* 4062306a36Sopenharmony_ciThis is used for dynamic control cache allocation 4162306a36Sopenharmony_ci**********************************************************************/ 4262306a36Sopenharmony_cistruct controlcache_6205 { 4362306a36Sopenharmony_ci u32 number_of_controls; 4462306a36Sopenharmony_ci u32 physical_address32; 4562306a36Sopenharmony_ci u32 size_in_bytes; 4662306a36Sopenharmony_ci}; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci/********************************************************************* 4962306a36Sopenharmony_ciThis is used for dynamic allocation of async event array 5062306a36Sopenharmony_ci**********************************************************************/ 5162306a36Sopenharmony_cistruct async_event_buffer_6205 { 5262306a36Sopenharmony_ci u32 physical_address32; 5362306a36Sopenharmony_ci u32 spare; 5462306a36Sopenharmony_ci struct hpi_fifo_buffer b; 5562306a36Sopenharmony_ci}; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci/*********************************************************** 5862306a36Sopenharmony_ciThe Host located memory buffer that the 6205 will bus master 5962306a36Sopenharmony_ciin and out of. 6062306a36Sopenharmony_ci************************************************************/ 6162306a36Sopenharmony_ci#define HPI6205_SIZEOF_DATA (16*1024) 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_cistruct message_buffer_6205 { 6462306a36Sopenharmony_ci struct hpi_message message; 6562306a36Sopenharmony_ci char data[256]; 6662306a36Sopenharmony_ci}; 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_cistruct response_buffer_6205 { 6962306a36Sopenharmony_ci struct hpi_response response; 7062306a36Sopenharmony_ci char data[256]; 7162306a36Sopenharmony_ci}; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciunion buffer_6205 { 7462306a36Sopenharmony_ci struct message_buffer_6205 message_buffer; 7562306a36Sopenharmony_ci struct response_buffer_6205 response_buffer; 7662306a36Sopenharmony_ci u8 b_data[HPI6205_SIZEOF_DATA]; 7762306a36Sopenharmony_ci}; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_cistruct bus_master_interface { 8062306a36Sopenharmony_ci u32 host_cmd; 8162306a36Sopenharmony_ci u32 dsp_ack; 8262306a36Sopenharmony_ci u32 transfer_size_in_bytes; 8362306a36Sopenharmony_ci union buffer_6205 u; 8462306a36Sopenharmony_ci struct controlcache_6205 control_cache; 8562306a36Sopenharmony_ci struct async_event_buffer_6205 async_buffer; 8662306a36Sopenharmony_ci struct hpi_hostbuffer_status 8762306a36Sopenharmony_ci instream_host_buffer_status[H620_MAX_ISTREAMS]; 8862306a36Sopenharmony_ci struct hpi_hostbuffer_status 8962306a36Sopenharmony_ci outstream_host_buffer_status[H620_MAX_OSTREAMS]; 9062306a36Sopenharmony_ci}; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci#endif 93